CSRF-Token
Was ist CSRF-Token?
CSRF-TokenUnvorhersagbarer, sitzungsgebundener Wert in Formularen oder Headern, mit dem der Server bestaetigt, dass zustandsaendernde Anfragen aus seinen eigenen Seiten stammen.
Ein CSRF-Token ist die klassische Abwehr gegen Cross-Site Request Forgery, jenen Angriff, der in den OWASP Top 10 2013 als A05 gefuehrt und in spaeteren Ausgaben in "Broken Access Control" aufgegangen ist. Der Server erzeugt einen kryptografisch zufaelligen Wert, bindet ihn an die Session des Nutzers und bettet ihn in HTML-Formulare ein oder stellt ihn fuer einen eigenen Request-Header bereit. Da die Same-Origin-Policy die Seite eines Angreifers daran hindert, den Token zu lesen, kann eine gefaelschte Cross-Site-Anfrage den korrekten Wert nicht liefern und wird abgewiesen.
Drei Muster dominieren. Das Synchronizer-Token-Pattern speichert den erwarteten Wert serverseitig – am robustesten, aber zustandsbehaftet. Double-Submit-Cookies vergleichen ein Cookie mit einem passenden Formularfeld oder Header, benoetigen keinen Serverzustand, sind aber angreifbar, wenn ein Angreifer Cookies ueber eine Subdomain schreiben kann. Das signierte HMAC-Double-Submit bindet den Token an die Session und schliesst diese Luecke. Token muessen pro Session (oder pro Anfrage bei sensiblen Aktionen) vergeben, lang und in konstanter Zeit verglichen werden.
Defense in Depth zaehlt: Seit Chrome 80 (Februar 2020) verwenden nicht gekennzeichnete Cookies standardmaessig SameSite=Lax, was die meisten Cross-Site-POSTs blockiert – doch Lax erlaubt weiterhin Top-Level-GET-Navigationen und nicht jeder Browser erzwingt es, weshalb Token notwendig bleiben. Kombinieren Sie sie mit Origin/Referer-Validierung und striktem CORS. Bearer-Token-APIs, die nur aus JavaScript aufgerufen werden, vermeiden implizite Cookies und brauchen in der Regel keinen CSRF-Token, benoetigen aber weiterhin Anti-Replay- und Autorisierungskontrollen.
flowchart TD
A[Nutzer laedt Formular] --> B[Server stellt sitzungsgebundenen CSRF-Token aus]
B --> C[Token in verstecktem Feld / eigenem Header]
C --> D[Nutzer sendet zustandsaendernde Anfrage]
D --> E{Token passt zum Session-Wert?}
E -- Ja --> F[Anfrage verarbeiten]
E -- Nein / fehlt --> G[Ablehnen 403 - gefaelschte Anfrage]
H[Cross-Site-Formular des Angreifers] -. kann Token nicht lesen .-> G● Beispiele
- 01
Verstecktes <input type="hidden" name="csrf" value="a8f1...">-Feld in einem Formular.
- 02
X-CSRF-Token-Header serverseitig gegen ein Session-Secret validiert.
● Häufige Fragen
Was ist CSRF-Token?
Unvorhersagbarer, sitzungsgebundener Wert in Formularen oder Headern, mit dem der Server bestaetigt, dass zustandsaendernde Anfragen aus seinen eigenen Seiten stammen. Es gehört zur Kategorie Identität und Zugriff der Cybersicherheit.
Was bedeutet CSRF-Token?
Unvorhersagbarer, sitzungsgebundener Wert in Formularen oder Headern, mit dem der Server bestaetigt, dass zustandsaendernde Anfragen aus seinen eigenen Seiten stammen.
Wie schützt man sich gegen CSRF-Token?
Schutzmaßnahmen gegen CSRF-Token kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.