Was ist CSRF?
sobes.tech KI
Antwort von AI
CSRF (Cross-Site Request Forgery) — ist eine Art von Angriff, bei dem ein Angreifer den Benutzer dazu bringt, unerwünschte Aktionen auf einer Website auszuführen, auf der der Benutzer bereits authentifiziert ist.
Der Kern des Angriffs besteht darin, dass eine bösartige Website oder eine E-Mail eine Anfrage enthält, die der Browser des Benutzers automatisch an die Zielseite sendet. Wenn der Benutzer auf der Zielseite eingeloggt ist, sendet sein Browser Cookies, und die Anfrage wird mit seinen Rechten ausgeführt.
Zum Beispiel kann dies eine Anfrage zum Ändern des Passworts, zum Überweisen von Geld oder zum Löschen eines Kontos sein.
Zum Schutz vor CSRF werden verschiedene Methoden eingesetzt:
- CSRF-Tokens: Geheime, für jede Anfrage einzigartige Tokens, die auf dem Server generiert und mit jedem Formular oder AJAX-Request gesendet werden. Der Server überprüft die Übereinstimmung des empfangenen Tokens.
- SameSite-Cookie-Attribut: Legt fest, dass Cookies nur bei Anfragen vom gleichen Domain-Name, auf dem das Cookie gesetzt wurde, gesendet werden.
- Überprüfung der Origin- und Referer-Header: Der Server prüft, woher die Anfrage stammt. Diese Header können jedoch von einem Angreifer geändert werden oder in manchen Fällen fehlen.
- Erfordernis der erneuten Authentifizierung für kritische Aktionen: Passwortabfrage vor der Ausführung wichtiger Operationen.
Die effektivste und gängigste Methode ist die Verwendung von CSRF-Tokens.
// Beispiel zum Hinzufügen eines CSRF-Tokens in ein Formular
<form action="/transfer" method="POST">
<input type="hidden" name="_csrf_token" value="vom Server generierter Token">
<input type="number" name="amount">
<button type="submit">Überweisen</button>
</form>
// Beispiel zur Überprüfung des CSRF-Tokens auf dem Server (Node.js mit Express)
app.post('/transfer', csrfProtection, (req, res) => {
// Verarbeitung der Anfrage nach erfolgreicher Token-Überprüfung
});