GET-Action security starts by assuming URLs leak. Query strings can appear in browser history, server logs, analytics, referrers, caches, screenshots, and support tickets.
Security checklist
- Require an idempotency key and reject replay with conflicting parameters.
- Never include secrets, tokens, passwords, API keys, patient IDs, account identifiers, payment data, private messages, or regulated data in the query string.
- Use a matching POST endpoint for L2+ clients and all rich or sensitive actions.
- Require human consent for publication, repository writes, account changes, destructive actions, durable memory writes, financial actions, or regulated contexts.
- Apply strict rate limits, crawler protection, and abuse detection before action execution.
- Log public-safe audit evidence without storing raw secrets or private query material.
- Keep action endpoints out of public sitemap entries and search-index invitations.
- Return a review URL or blocker instead of executing ambiguous requests.
Reject examples
?token=...,?api_key=...,?password=..., or bearer-like values.- Medical or regulated identifiers carried in URLs.
- One-click destructive, payment, publication, or account-change URLs without a stronger reviewed path.
Safe default
When unsure, do the read-only part, return a human-readable review URL, and require POST JSON or human approval before execution.