XSS (Cross-Site-Scripting)
Definition
Cross-Site-Scripting (XSS) ist eine Sicherheitslücke in Webanwendungen, die es Angreifern ermöglicht, bösartigen JavaScript-Code in Webseiten einzuschleusen, der im Browser anderer Nutzer ausgeführt wird. Der eingeschleuste Code kann Cookies stehlen, Sitzungen hijacken oder Nutzer auf gefälschte Seiten umleiten. XSS ist eine der häufigsten Web-Sicherheitslücken und steht auf der OWASP Top 10.
Erläuterung
Es gibt drei Haupttypen: Reflected XSS (böswilliger Code wird aus der URL oder einem Formularfeld reflektiert), Stored XSS (Code wird in der Datenbank gespeichert und bei jedem Seitenaufruf ausgeführt, z. B. in Kommentaren) und DOM-based XSS (Manipulation des DOM durch client-seitiges JavaScript). Output-Encoding ist die wichtigste Gegenmaassnahme: Alle vom Nutzer stammenden Daten müssen vor der Ausgabe im HTML-Kontext korrekt enkodiert werden (z. B. < wird zu <). Eine Content Security Policy (CSP) reduziert die Auswirkungen von XSS, indem sie festlegt, welche Skriptquellen der Browser als vertrauenswürdig behandeln darf. HttpOnly-Cookies können nicht per JavaScript ausgelesen werden und schützen so vor Cookie-Diebstahl durch XSS. Moderne Frontend-Frameworks wie React escapen Ausgaben automatisch, was das XSS-Risiko erheblich reduziert.