XSS (Cross-Site Scripting): Definition & Erklärung — Glossar
Was ist Cross-Site Scripting?
Cross-Site Scripting (XSS) ist eine der häufigsten und gefährlichsten Sicherheitslücken in Webanwendungen. Bei einem XSS-Angriff schleust ein Angreifer schädlichen JavaScript-Code in eine vertrauenswürdige Webseite ein. Dieser Code wird im Browser anderer Nutzer ausgeführt — ohne deren Wissen und unter dem Vertrauen der betroffenen Website.
XSS-Typen
Reflected XSS: Schädlicher Code wird über einen Link (URL-Parameter) an den Server gesendet und sofort in die Antwort eingebettet — z. B. in Fehlermeldungen oder Suchergebnissen. Stored/Persistent XSS: Schädlicher Code wird in der Datenbank gespeichert (z. B. in Kommentaren, Profilen) und bei jedem Seitenaufruf ausgeführt — besonders gefährlich. DOM-based XSS: Ausnutzung von JavaScript-Code, der Client-seitig DOM-Manipulation ohne serverseitige Beteiligung durchführt.
Auswirkungen und Risiken
XSS kann genutzt werden für: Session Hijacking (Stehlen von Authentifizierungs-Cookies), Keylogging (Erfassen von Tastatureingaben inkl. Passwörter), Phishing (gefälschte Login-Formulare auf vertrauenswürdiger Domain), Drive-by Downloads (Malware-Verteilung), Defacement (Manipulation des Seiteninhalts) und CSRF-Angriffe. OWASP listet XSS dauerhaft unter den Top-10-Sicherheitsrisiken für Webanwendungen.
Schutzmaßnahmen
Output Encoding: Alle Nutzereingaben vor der Ausgabe im HTML-Kontext korrekt escapen (HTML entities). Content Security Policy (CSP): HTTP-Header, der Quellen für JavaScript einschränkt und Inline-Scripts verbietet. Input Validation: Nutzereingaben serverseitig validieren und bereinigen. HttpOnly-Cookie-Flag: Verhindert den Zugriff auf Cookies durch JavaScript. Moderne Frontend-Frameworks (React, Vue, Angular) escapen standardmäßig alle Ausgaben — gefährlich wird es nur bei expliziter Verwendung von dangerouslySetInnerHTML / v-html.