Security model for integrations
POM AI applies controls at both the WordPress UI boundary and the remote service boundary.
WordPress feature requests
State-changing AJAX handlers verify a purpose-specific nonce and the relevant WordPress capability, such as editing posts or uploading files. Inputs are sanitized, file type and size are checked where applicable, and remote responses are normalized before local content or media is written.
Outgoing POM AI service requests are signed over the exact HTTP method, route, timestamp, nonce, and wire body using the current product license. This provides request integrity and replay protection without exposing the key in page content.
MCP requests
MCP adds four independent checks:
- authentication and required OAuth scopes;
- the mapped WordPress user’s capability;
- the administrator-controlled write gate for the product area;
- the tool schema and server allowlists.
Dry run does not bypass these checks. Destructive operations remain explicitly identified by their tool contract.
Extension guidance
Use the existing helpers and filters. Verify nonces before reading request data, check capabilities before acting, sanitize values at input, escape them at output, and never place licenses or MCP secrets in logs. A new generic write surface should not be introduced merely to support one feature; keep the operation narrow and schema-driven.
Related guides: MCP authorization, license registry, and public hooks.