Ein CSRF-Token (Cross-Site Request Forgery-Token) ist ein Sicherheitsmechanismus, der zur Abwehr von Cross-Site Request Forgery (CSRF)-Angriffen verwendet wird. Es handelt sich um ein zufällig generiertes Token, das in Form eines versteckten Felds in einem Webformular oder als Teil einer Anfrage an den Server eingefügt wird. Dieses Token dient dazu, die Authentizität einer Anfrage zu überprüfen und sicherzustellen, dass die Anfrage von einem legitimen Benutzer stammt und nicht von einem Angreifer.
Die Funktionsweise eines CSRF-Tokens ist wie folgt:
Beim Anmelden oder beim Erstellen eines Kontos auf einer Website erhält der Benutzer ein CSRF-Token. Dieses Token ist nur für diese Sitzung oder für einen begrenzten Zeitraum gültig.
Das CSRF-Token wird auf dem Server gespeichert und mit dem Benutzerkonto oder der Sitzung verknüpft.
Jedes Mal, wenn der Benutzer eine Aktion ausführt, die eine Anfrage an den Server erfordert, wird das CSRF-Token in die Anfrage aufgenommen, normalerweise in Form eines versteckten Formularfelds.
Der Server prüft, ob das CSRF-Token in der Anfrage mit dem auf dem Server gespeicherten Token übereinstimmt. Wenn die Tokens nicht übereinstimmen oder fehlen, wird die Anfrage als ungültig abgelehnt, da sie möglicherweise von einem Angreifer stammt.
Wenn das CSRF-Token korrekt ist, wird die Anfrage als legitim akzeptiert, und die Aktion wird ausgeführt.
Durch die Verwendung von CSRF-Tokenen wird sichergestellt, dass nur berechtigte Benutzeraktionen akzeptiert werden, da ein Angreifer normalerweise keinen Zugriff auf das CSRF-Token eines anderen Benutzers hat. Dies erschwert es Angreifern erheblich, erfolgreiche CSRF-Angriffe durchzuführen.
Website-Entwickler sollten immer CSRF-Token-Prüfungen in ihren Anwendungen implementieren, insbesondere für Aktionen, die sensible Daten oder Aktionen auslösen. CSRF-Token-Prüfungen sind ein bewährter Sicherheitsmechanismus und ein wichtiger Bestandteil der Sicherheitsstrategie bei der Entwicklung von Webanwendungen.