dorfteich/docs
Claude Fable 5 d32c8c3730
Some checks failed
CI / Lint, typecheck, test (pull_request) Failing after 1m51s
CI / Auth e2e pack (pull_request) Has been skipped
CI / Import/export fidelity gate (pull_request) Has been skipped
CI / Build container images (pull_request) Has been skipped
#189: make the CSRF origin check fail closed
A cookie-carrying mutation without Origin and Referer (or with an
unparsable one) is now rejected with 403 csrf_origin_mismatch instead
of passing unchecked. The exception for non-browser clients stays
structural: PAT/bearer requests carry no session cookie and never reach
the check, and a request that does carry the cookie is always checked.

The test harness injects the matching Origin (supertest simulates a
browser page of this instance) with an explicit suppression header for
the negative cases; the Playwright fixture contexts send the header on
their manual seeding calls; release-qa.sh pins APP_BASE_URL and sends
the matching Origin. Dedicated spec covers: missing headers 403,
mismatch 403, unparsable 403, match passes, GETs untouched, PAT
mutation without headers passes, cookie+bearer still checked.

Refs #189

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0168Ph5uBmHm8X28CSVpbpnJ
2026-07-30 09:34:44 +02:00
..
architecture #189: make the CSRF origin check fail closed 2026-07-30 09:34:44 +02:00
de #155: ChordPro-Plugin — Akkordblätter/Leadsheets als Block 2026-07-20 02:11:36 +02:00
developer Doku: Excalidraw als sechstes Standard-Plugin ergänzt 2026-07-19 22:27:17 +02:00
manual #155: ChordPro-Plugin — Akkordblätter/Leadsheets als Block 2026-07-20 02:11:36 +02:00
operations Move the stage directories to /srv/DOCKER (host consolidation) 2026-07-14 12:43:29 +02:00
self-hosting #148: Seitenlisten filtern nach createdSince/updatedSince 2026-07-20 00:49:52 +02:00
vs-nfd #189: make the CSRF origin check fail closed 2026-07-30 09:34:44 +02:00
features.md Favorites: personal page stars, golden icons, sidebar filter (#132) 2026-07-16 12:03:55 +02:00