CSRF ist ein Angriff, bei dem der Browser eines angemeldeten Nutzers ungewollt eine Aktion auslöst. Die Abkürzung steht für Cross-Site Request Forgery. Der Angreifer braucht die Zugangsdaten nicht, weil der Browser die Anmeldung bei jeder Anfrage mitschickt.
- CSRF
Ein Angriff, bei dem der Browser eines angemeldeten Nutzers ungewollt eine Aktion auslöst.
Beispiel: „Das CSRF änderte die hinterlegte E-Mail-Adresse, während das Opfer ein Bild ansah.“Auch: Gelegentlich steht XSRF für dieselbe Sache. Betroffen ist alles, was etwas verändert: Bestellungen, Adressänderungen, Freigaben.
Abgrenzung zum XSS: Dort wird eigener Code auf der fremden Seite ausgeführt. Hier wird nur eine Anfrage gestellt, die der Browser brav mit Anmeldung versieht.
Wie ein CSRF-Angriff abläuft
In drei Schritten. Das Opfer ist bei einem Dienst angemeldet, ruft eine andere Seite auf, und diese Seite schickt im Hintergrund eine Anfrage an den Dienst. Das kann ein Bild mit präparierter Adresse sein oder ein Formular, das sich selbst abschickt. Der Dienst sieht eine Anfrage mit gültiger Sitzung und führt sie aus.
Was gegen CSRF hilft
Ein Geheimnis, das der Angreifer nicht kennt. Üblich ist ein Token, das die Seite in jedes Formular legt und bei der Verarbeitung prüft; fehlt es oder passt es nicht, wird abgebrochen. Dazu kommt das Merkmal SameSite am Sitzungscookie, das Anfragen von fremden Seiten gar nicht erst mit der Anmeldung versieht.
Die dritte Regel ist älter als beide: Anfragen, die etwas verändern, laufen über POST und nicht über eine Adresse, die sich in ein Bild packen lässt.
Warum CSRF in einem CMS selten vorkommt
Weil die Token dort eingebaut sind. Jedes verbreitete CMS und jedes Framework bringt den Schutz für seine eigenen Formulare mit. Die Lücken entstehen an den Stellen, die jemand selbst gebaut hat: eigene Schnittstellen, eine schnelle Abkürzung im Theme, ein Endpunkt für eine App.