Daten, Datenschutz & Sicherheit › Herkunfts-Prüfung (CSRF-Schutz)
Herkunfts-Prüfung (CSRF-Schutz)
SicherheitLive✓ Geprüft am Sat Sep 05 2026 02:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)Bei jeder ändernden Anfrage prüft das System, von welcher Web-Adresse sie abgeschickt wurde, und lehnt alles ab, was nicht von der eigenen Seite kommt. Damit kann eine fremde Webseite im Hintergrund keine Änderungen im Büro-Panel auslösen. Reines Lesen wird nie gebremst.
Bild folgt
Der Schutz greift nur bei ändernden Anfragen; Abrufe zum reinen Lesen laufen immer durch. Bei jeder Änderung vergleicht das System die vom Browser mitgeschickte Herkunftsangabe mit einer Liste erlaubter Adressen des Hauses. Verglichen wird der Adressname genau und vollständig — eine Teilübereinstimmung reicht bewusst nicht, damit ein ähnlich klingender fremder Name nicht durchrutscht. Fehlt die Herkunftsangabe ganz, gilt die Anfrage ebenfalls als verdächtig und wird abgewiesen. Anfragen vom Rechner selbst, also aus Entwicklung und Tests, laufen ohne Prüfung durch. Ist die Liste erlaubter Adressen leer, prüft das System gar nicht mehr, sondern schreibt nur eine Warnung ins Server-Protokoll — dann steht der Schutz für das Büro-CRM (Admin) nur auf dem Papier. Dieselbe Vorschaltstelle setzt außerdem die Regeln, welche Skripte und eingebetteten Seiten der Browser überhaupt laden darf.
- Speichern im Büro-Panel bricht mit einer Herkunfts-Ablehnung ab → die Adresse, unter der das Panel geöffnet wurde, steht nicht in der Liste der erlaubten Adressen; der Betrieb muss sie ergänzen.
- Änderungen klappen über den gewohnten Namen, aber nicht über eine zweite Adresse → jede weitere Adresse, etwa ein Testsystem oder der Aufruf über die Netzwerknummer statt des Namens, muss eigens und in exakt derselben Schreibweise eingetragen sein.
- Ein Test von einer fremden Seite wird nicht abgelehnt → dann ist die Liste leer und die Prüfung damit ausgeschaltet; im Server-Protokoll steht dazu eine Warnzeile.
- Ist PUBLIC_ALLOWED_HOSTS in Prod tatsächlich gesetzt? Der Code faellt sonst permissiv offen ('config bug, not a security one' laut Kommentar) — nicht verifiziert, ob das env in Prod steht.
- Wie viele schreibende Routen rufen requireSameOrigin() wirklich auf? Die Funktion ist ein Baustein pro Route, kein globaler Filter; eine Zaehlung ueber alle Routen wurde hier nicht gemacht.
- lib/api-guard.ts
- middleware.ts
| mechanismus | requireSameOrigin() prueft Origin/Referer gegen PUBLIC_ALLOWED_HOSTS bei nicht-GET/HEAD/OPTIONS; faellt bei leerem PUBLIC_ALLOWED_HOSTS offen (nur geloggt, nicht blockiert) — als Konfigurationsluecke im Code selbst dokumentiert |
|---|
Beleg: lib/api-guard.ts:23-30 — requireSameOrigin(): 'CSRF defence via Origin/Referer header check'; ergaenzt middleware.ts-Origin-Check fuer /api/admin/*
Tiefer fragen
Kontext aus dem KFZ-Bozo-Handbuch
Knoten: sec-csrf-origin-guard (Sicherheit · Daten, Datenschutz & Sicherheit · live · geprüft Sat Sep 05 2026 02:00:00 GMT+0200 (Mitteleuropäische Sommerzeit) @ 0f0406a1)
Kurz: Bei jeder ändernden Anfrage prüft das System, von welcher Web-Adresse sie abgeschickt wurde, und lehnt alles ab, was nicht von der eigenen Seite kommt. Damit kann eine fremde Webseite im Hintergrund keine Änderungen im Büro-Panel auslösen. Reines Lesen wird nie gebremst.
Lies zuerst (Lesebereich, nicht der ganze Baum):
lib/api-guard.ts
middleware.ts
Hängt zusammen mit:
sec-admin-login (lib/admin-auth.ts) · api-jobs-auftraege (app/api/admin/jobs)
Offene Fragen der Seite:
Ist PUBLIC_ALLOWED_HOSTS in Prod tatsächlich gesetzt? Der Code faellt sonst permissiv offen ('config bug, not a security one' laut Kommentar) — nicht verifiziert, ob das env in Prod steht.
Wie viele schreibende Routen rufen requireSameOrigin() wirklich auf? Die Funktion ist ein Baustein pro Route, kein globaler Filter; eine Zaehlung ueber alle Routen wurde hier nicht gemacht.
Hausregel 2: Vault-Daten sind für diese Session unsichtbar; Quellpfade auf Vault-Code sind keine Freigabe.
Frage: {{DEINE FRAGE}}
Antworte nur mit Belegen: nenne Datei und Zeile für jede Aussage.
Wenn die Quellen die Frage nicht beantworten, sag das und nenne, was du zusätzlich lesen müsstest.
Weicht die Seite vom Code ab, schlage den Seiten-Patch vor (wiki/seiten/daten-recht-sicherheit/sec-csrf-origin-guard.md).