1
Allgemeine Schutzmaßnamen
Clientseitig• Session IDs• Erweiterungen wie NoScript• Cookies verbieten
Serverseitig• Tokens• HTML Entities verwenden
2
Exkurs: HTML Entities
Beispiel• Anfrage in Formularfeld:
<script>alert("XSS")</script>• Anfrage in HTML Entities:
%3Cscript%3Ealtert%28%22XSS%22%28%3C%2Fscript%3E
• JavaScript Interpreter:
„?“
3
Üblicher Schutz vor CSRF
Funktion• Serverseitig werden
HTTP Requests (bis auf POST) eingeschränkt
• Token werden verwendet
Nachteile• Server muss Token
verwalten• Token muss
Formularfeld zugeordnet sein• Abgelaufene Token
müssen ungültig gemacht werden
DoS
4
Schutz vor CSRF:Double-Submit Cookie [ZF08] Funktion• Braucht keine
serverseitigen Zustände mehr
• Zwei Tokens• Einer im Cookie• Einer im Request
Vorteile• „Same-Origin-Policy“ für
Cookies• Sind die Tokens identisch
kommen Cookie und Request von derselben Ressource
Nachteile• Modifikationen im
Applikation Code
5
Schutz vor CSRF:Double-Submit Cookie+ [LTJ12] Funktion Serverseitig• Proxy („Gatekeeper“)
validiert Token• Whitelist für Einstieg in
Applikation ohne Token (Bilder, JavaScript, CSS)
• „Gatekeeper“ fügt jedem ausgehenden HTML eine JavaScript Library hinzu
HTTP Request Möglichkeiten• Requests durch
Interaktion mit DOM• Implizite Requests durch
HTML tags• Requests von JavaScripts
XMLHttpRequest• Weiterleitungen seitens
des Servers