Individual skill
audit-csrf
Check CSRF protection on every form and mutation API, on top of the built-in same-origin check (`api.requireSameOrigin`). Use for "audit CSRF", "check CSRF protection", "are my forms safe", "review session security".
skills/audit-csrf/SKILL.md
Source commit e7c088a615e0bc16659d7a307fe92910ae6bd546
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 8, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 106
- Repository last updated
- Nov 7, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- agent-skills Repository topic
- ai-agents Repository topic
- cloudflare-workers Repository topic
- framework Repository topic
- full-stack Repository topic
- llms-txt Repository topic
- mcp Repository topic
- preact Repository topic
- ssg Repository topic
- ssr Repository topic
- security Derived category
- security-application Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Read excerpt
# Pracht Audit CSRF
What the framework guarantees: by default (`ApiConfig.requireSameOrigin`,
`true` unless explicitly disabled), the runtime rejects state-changing API
requests (`POST`/`PUT`/`PATCH`/`DELETE`) with a 403 unless the browser signals
an exact same-origin fetch (`Sec-Fetch-Site: same-origin`) or the request's
`Origin`/`Referer` matches the request URL's origin. `same-site` is not
accepted (sibling subdomains can be attacker-controlled). Requests with no
browser provenance headers at all (curl, server-to-server) are allowed — the
threat model is browser-form CSRF, which cannot strip those headers. Page
routes reject unsafe methods outright, so the API surface is where mutations
live.
The same check also covers **WebSocket upgrade requests** (any request carrying