Cross-Site-Request-Forgery (CSRF)
Lernen Sie, wie CSRF-Angriffe authentifizierte Anfragen fälschen und wie CSRF-Token sowie SameSite-Cookies davor schützen.
Cross-Site-Request-Forgery (CSRF) ist eine kostenlose Cyber Security Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cyber Security Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist CSRF?
Cross-Site Request Forgery (CSRF) bringt den Browser eines authentifizierten Benutzers dazu, nicht autorisierte Anfragen an eine Webanwendung zu senden. Der Browser sendet Cookies automatisch mit Anfragen, daher kann der Server legitime und gefälschte Anfragen ohne zusätzliche Maßnahmen nicht unterscheiden.
So funktioniert CSRF
Szenario:
- Das Opfer ist bei bank.com angemeldet (Sitzungscookie im Browser)
- Das Opfer besucht die Seite des Angreifers mit:
<img src="https://bank.com/transfer?to=attacker&amount=1000"> - Der Browser sendet die GET-Anfrage mit dem angehängten Cookie von bank.com
- Die Bank führt die Überweisung aus
CSRF mit POST-Anfragen
CSRF über POST erfordert ein Formular:
<form action="https://bank.com/transfer" method="POST" id="f">
<input name="to" value="attacker">
<input name="amount" value="1000">
</form>
<script>document.getElementById("f").submit()</script>CSRF-Tokens
Die wichtigste Abwehrmaßnahme ist ein CSRF-Token: ein zufälliger, geheimer Wert pro Sitzung oder pro Anfrage, der in Formulare eingebettet wird. Der Server validiert das Token bei jeder zustandsändernden Anfrage. Ein Angreifer auf einer anderen Domain kann das Token aufgrund der Same-Origin-Policy nicht auslesen.
SameSite-Cookie-Attribut
SameSite=Strict: Das Cookie wird überhaupt nicht mit Cross-Site-Anfragen gesendet. SameSite=Lax: Das Cookie wird mit sicheren Top-Level-Navigationen (Links) gesendet, aber nicht mit POST-Anfragen von anderen Webseiten. Moderne Browser verwenden standardmäßig Lax, wodurch das CSRF-Risiko deutlich sinkt.
Double-Submit-Cookie-Muster
Eine Alternative zur serverseitigen Speicherung des Tokens: Setzen Sie ein zufälliges CSRF-Cookie und verlangen Sie, dass es zusätzlich als Anfrageparameter übermittelt wird. Ein Angreifer kann das Cookie nicht auslesen (Same-Origin), sodass er keinen passenden Wert in den Formulardaten angeben kann.
Benutzerdefinierte Anfrage-Header
Bei AJAX-Anfragen bietet die Anforderung eines benutzerdefinierten Headers, beispielsweise X-Requested-With: XMLHttpRequest, Schutz vor CSRF, da Browser Cross-Origin-Skripte daran hindern, beliebige Header zu setzen (CORS erzwingt dies).
Wann CSRF-Tokens nicht ausreichen
CSRF-Tokens sind wirkungslos, wenn:
- XSS vorhanden ist — der Angreifer kann das Token über JavaScript auslesen
- das Token in der URL offengelegt wird (Referer-Header)
- das Token vorhersehbar ist oder wiederverwendet wird
- CORS falsch konfiguriert ist und den Ursprung des Angreifers zulässt
CSRF testen
Testschritte:
- Zustandsändernde Anfragen identifizieren (POST, PUT, DELETE)
- Das CSRF-Token entfernen oder ändern und die Anfrage erneut senden
- Eine Cross-Origin-Formularübermittlung erstellen und prüfen, ob sie erfolgreich ist
- Das SameSite-Attribut der Sitzungscookies überprüfen
CSRF in APIs
REST-APIs, die JSON verwenden, sind häufig nicht anfällig für CSRF, wenn sie:
Content-Type: application/jsonverlangen (HTML-Formulare können diesen Header nicht setzen)- Token-basierte Authentifizierung verwenden (Authorization-Header statt Cookies)
APIs, die Cookies akzeptieren, müssen dennoch einen CSRF-Schutz implementieren.
Die moderne CSRF-Landschaft
Da SameSite=Lax in Chrome, Firefox und Safari standardmäßig aktiviert ist, werden viele traditionelle CSRF-Angriffe blockiert. Angriffe über Subdomains und bestimmte Navigationsmuster können Lax jedoch weiterhin umgehen. Kombinieren Sie SameSite mit CSRF-Tokens, um einen robusten Schutz zu erreichen.
Schnelltest: CSRF
Was ist die wichtigste Abwehrmaßnahme gegen CSRF-Angriffe in Webanwendungen?
Zusammenfassung der Lektion
CSRF nutzt das automatische Anhängen von Cookies durch den Browser aus, um authentifizierte Anfragen von bösartigen Webseiten zu fälschen. Die wichtigste Abwehrmaßnahme sind serverseitig validierte CSRF-Tokens. Eine zusätzliche Maßnahme ist das SameSite=Strict/Lax-Cookie-Attribut. APIs, die Token zur Authentifizierung in Headern statt in Cookies verwenden, sind von Natur aus gegen CSRF geschützt. Kombinieren Sie mehrere Schutzmaßnahmen; XSS kann vorhandene CSRF-Tokens umgehen.
Häufig gestellte Fragen
Ist die Lektion „Cross-Site-Request-Forgery (CSRF)“ kostenlos?
Ja — der vollständige Text von „Cross-Site-Request-Forgery (CSRF)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cyber Security Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Cross-Site-Request-Forgery (CSRF)“?
Lernen Sie, wie CSRF-Angriffe authentifizierte Anfragen fälschen und wie CSRF-Token sowie SameSite-Cookies davor schützen. Du übst Cyber Security Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cyber Security Academy zu starten?
Keine Vorkenntnisse erforderlich. Cyber Security Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Cross-Site-Request-Forgery (CSRF)“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cyber Security Academy-Lektion Code schreiben und ausführen?
Ja. Jede Cyber Security Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- SQL-Injection: Wie und warum sie funktioniert
- Cross-Site-Scripting (XSS)
- Cross-Site-Request-Forgery (CSRF)
- Fehlkonfigurationen und exponierte Dienste