Zum Inhalt springen

Glossar

Laravel und CSRF: der untergeschobene Klick

Ein Angriff, bei dem eine fremde Seite im Namen eines angemeldeten Nutzers eine Aktion auslöst.

Angenommen, Sie sind bei einer Anwendung angemeldet und öffnen in einem anderen Tab eine fremde Seite. Diese Seite schickt still eine Anfrage an Ihre Anwendung. Der Browser legt Ihre Sitzungsdaten von selbst dazu, weil er das immer tut. Für die Anwendung sieht es aus, als hätten Sie die Aktion ausgelöst.

Das ist Cross-Site Request Forgery, zu Deutsch etwa: eine untergeschobene Anfrage. Der Angriff braucht kein gestohlenes Passwort. Es genügt, dass Sie angemeldet sind.

Wie der Schutz funktioniert und wie er verlorengeht

Die Abwehr ist unspektakulär. Die Anwendung legt in jedes Formular ein einmaliges Kennzeichen und akzeptiert nur Anfragen, die es mitbringen. Eine fremde Seite kann es nicht kennen. Laravel macht das standardmäßig, ohne Zutun.

Verloren geht der Schutz fast immer auf demselben Weg. Beim Einbinden einer Schnittstelle scheitert ein Aufruf, jemand nimmt den Pfad von der Prüfung aus, damit es weitergeht, und die Ausnahme wird großzügiger gefasst als nötig. Danach fällt es nicht mehr auf, weil nichts kaputt ist. Genau nach solchen Ausnahmen sehen wir in einem Code-Audit.

FAQ

Häufige Fragen

Betrifft das auch unsere Schnittstelle für die App?
Anders, ja. Der Schutz hängt an Sitzungen im Browser. Eine App, die sich mit einem Token anmeldet, ist von dieser Angriffsart nicht betroffen und deshalb üblicherweise ausgenommen. Wichtig ist, dass die Ausnahme genau dort endet und nicht versehentlich die ganze Anwendung umfasst.

Verwandt

Begriffe, die dazugehören

Projekt oder Frage?

Schreiben Sie uns, worum es geht. Sie bekommen eine Einschätzung von jemandem, der selbst mit Laravel arbeitet — nicht vom Vertrieb.