Cross-Site Request Forgery (CSRF)
Bei CSRF wird eine angemeldete Sitzung für eine unerwünschte Anfrage ausgenutzt. Das Sitzungscookie allein belegt keinen beabsichtigten Auftrag.
Cross-Site Request Forgery, kurz CSRF oder XSRF, ist ein Angriff, bei dem eine fremde Website den Browser zu einer unerwünschten Anfrage an eine Zielanwendung veranlasst. Sendet der Browser dabei automatisch gültige Anmeldedaten mit und fehlt ein geeigneter Schutz, kann die Anwendung die Anfrage als Auftrag der angemeldeten Person behandeln.
Eine Änderung im Projektportal
Ein fiktives Projektportal erlaubt es, die Adresse für Benachrichtigungen im Feld notificationEmail zu ändern. Eine Person ist dort angemeldet und besucht zusätzlich eine fremde Seite. Diese versucht, die Änderung auszulösen. Ob das Sitzungscookie mitgesendet wird, hängt unter anderem von den Cookie-Regeln des Browsers ab.
Das Prüfen eines gültigen Sitzungscookies beantwortet, welcher Sitzung die Anfrage zugeordnet wird. Es belegt nicht, dass die Person diese Adressänderung beabsichtigt hat. Auch die Verwendung von POST allein verhindert den Angriff nicht.
Schutz für zustandsändernde Anfragen
Für ein Formular kann das Framework ein nicht vorhersagbares, an die Sitzung gebundenes CSRF-Token bereitstellen. Der Server prüft dieses zusätzliche Merkmal vor der Änderung. Die Schutzfunktion muss für die betreffenden Anfragen tatsächlich verwendet werden.
MDN beschreibt außerdem Prüfungen anhand von Fetch-Metadaten, also Browserangaben zum Kontext einer Anfrage, und andere Verfahren passend zum Anfragetyp. Das Cookie-Attribut SameSite ist eine zusätzliche Schutzschicht. Dabei sind dieselbe Site und derselbe Origin (Protokoll, Hostname und Port) nicht gleichbedeutend; verschiedene Subdomains können zur selben Site gehören. Ein gültiges CSRF-Token ersetzt zudem nicht die Prüfung, ob die angemeldete Person die Adresse ändern darf.
Quellen
Verwandte Begriffe
- APIEine API legt fest, wie Software Funktionen oder Daten anderer Software nutzen kann.
- HTMLHTML beschreibt Struktur und Bedeutung von Webinhalten. Es unterscheidet beispielsweise Überschriften, Tabellen und Eingabefelder.
- Cross-Site Scripting (XSS)Bei XSS wird fremder Inhalt zu ausführbarem Code im Browser. Entscheidend ist, wie eine Anwendung Eingaben in ihre Seiten übernimmt.
- DatenminimierungDatenminimierung begrenzt personenbezogene Daten auf das, was für einen festgelegten Zweck angemessen, relevant und erforderlich ist.
- DatenaufbewahrungsregelEine Datenaufbewahrungsregel legt Zweck, Beginn, Dauer und Ende der Speicherung fest. Löschaufträge und Kopien müssen technisch berücksichtigt werden.
- Envelope EncryptionEnvelope Encryption trennt den Schlüssel für die Daten vom Schlüssel, der diesen schützt. Verschlüsselte Datei und verpackter Datenschlüssel gehören zusammen.
Ihr Vorhaben mit ASES
Beschreiben Sie uns Ihr Vorhaben. Wir melden uns mit einer ersten Einschätzung.