Cross-Site-Scripting (XSS) schleust fremden Skriptcode in eine Webseite ein, der dann im Browser anderer Nutzer ausgeführt wird — mit deren Sitzung und Rechten. Möglich wird das, wenn eine Anwendung Nutzereingaben ungefiltert in ihre Seiten einbaut.
Die Folgen reichen vom Sitzungsdiebstahl über manipulierte Inhalte bis zu nachgebauten Login-Masken im echten Seitenkontext — für Nutzer praktisch nicht erkennbar, weil die Adresszeile stimmt.
Die drei XSS-Typen
Reflected XSS liefert den Schadcode über einen präparierten Link, der von der Anwendung ins Antwort-HTML gespiegelt wird. Stored XSS ist gefährlicher: Der Code wird gespeichert — etwa in Kommentaren oder Profilfeldern — und trifft jeden, der die Seite aufruft. DOM-basiertes XSS entsteht komplett im Browser, wenn client-seitiger Code Eingaben unsicher verarbeitet.
Der Kernschutz heißt konsequentes Escaping: Ausgaben werden je Kontext (HTML, Attribut, JavaScript, URL) kodiert — moderne Frameworks erledigen das weitgehend automatisch, solange man ihre Schutzmechanismen nicht umgeht. Eine Content Security Policy begrenzt zusätzlich, was eingeschleuster Code überhaupt tun könnte; die WAF filtert bekannte Muster am Rand.
Schutzschichten gegen XSS
- Kontextgerechtes Output-Encoding — vom Framework erzwungen, nicht handgestrickt.
- Content Security Policy als Schadensbegrenzung für den Ernstfall.
- HttpOnly-Cookies: Sitzungen bleiben für Skripte unlesbar.
- WAF-Regeln gegen bekannte XSS-Muster, besonders vor Altanwendungen.