Der Inhalt kann sofort zurückgegeben, gespeichert und später ausgeliefert oder durch unsichere clientseitige Dokumentenmanipulation eingefügt werden. Die Ausführung kann mit dem Origin der Seite und dem zugänglichen Benutzerkontext agieren und angezeigte Inhalte, Daten oder Aktionen beeinflussen.
Prävention hängt davon ab, nicht vertrauenswürdige Daten aus ausführbaren Kontexten herauszuhalten. Anwendungen sollten sicheres Framework-Verhalten und sichere Sinks verwenden, kontextspezifische Ausgabe-Codierung anwenden und Inhalte sanitisieren, wenn Benutzern bewusst begrenztes Markup erlaubt wird.
Wichtigste Punkte
Übliche FormenReflected XSS gibt unsichere Eingaben in einer Antwort zurück, Stored XSS liefert zuvor gespeicherte Inhalte aus, und Document-Object-Model-basiertes XSS entsteht durch unsicheren clientseitigen Datenfluss und Ausführung.
Primäre PräventionTemplating und Browser-Schnittstellen bevorzugen, die Werte als Text behandeln, Ausgaben für den exakten Kontext codieren, gefährliche URLs validieren, unnötige dynamische Codeausführung vermeiden und gepflegte Sanitizer für erlaubtes Markup verwenden.
EindämmungEine gut entworfene Content Security Policy anwenden, sensible Cookies schützen, exponierte Browser-Daten minimieren und Drittanbieter-Skripte als Defense in Depth einschränken — nicht als Ersatz für sichere Datenbehandlung.
Wichtige EinschränkungEingabevalidierung, eine Web Application Firewall oder eine Content Security Policy allein kann nicht jeden Ausführungskontext oder clientseitigen Pfad abdecken. Die Same-Origin-Policy eines Browsers verhindert keinen Code, den die vertrauenswürdige Seite selbst eingeführt hat.