Lokal & kontrolliert
BEGRIFF

Cross-Site-Scripting (XSS)

Ein Angriff, bei dem es jemandem gelingt, eigenes Skript in eine fremde Website einzuschleusen — das dann im Browser der Besucher mit allen Rechten dieser Website läuft.

Auch bekannt als: XSS, eingeschleustes Skript

In Ruhe erklärt

Viele Websites zeigen Text an, der von außen kommt: Kommentare, Suchbegriffe, Namen. Gibt die Seite diesen Text ungeprüft als HTML aus, kann jemand statt Text ein Skript hineinschreiben. Der Browser jedes Besuchers führt es dann aus, als gehöre es zur Website.

Weil das Skript im Namen der Website läuft, darf es alles, was die Seite darf: Inhalte lesen, Formulare abschicken, im Namen des angemeldeten Besuchers handeln. Das macht XSS zu einer der folgenreichsten Lücken im Web.

Die eigentliche Abwehr steckt in der Anwendung: Text von außen wird beim Ausgeben so maskiert, dass er Text bleibt. Moderne Vorlagensysteme tun das meist von selbst — aber nicht in jedem Zusammenhang, etwa bei Links oder bei bewusst freigeschalteter HTML-Ausgabe. Als zweite Linie hindert eine Content Security Policy (CSP) den Browser daran, eingeschleuste Skripte auszuführen.

Warum das zählt

Weil sich an XSS zeigt, warum Sicherheitsheader wichtig sind und zugleich nicht genügen: Sie begrenzen den Schaden einer Lücke, schließen sie aber nicht.

Was es nicht bedeutet

Die häufigsten Irrtümer — auch auf seriösen Seiten.
  • Ein Skriptblocker beim Besucher schützt nicht die Website. Die Lücke liegt in der Anwendung und betrifft alle, die ihn nicht haben.
  • Das Cookie-Attribut HttpOnly verhindert, dass ein eingeschleustes Skript das Cookie ausliest — nicht aber, dass es im Namen des Besuchers handelt. Siehe Cookie-Attribute (Secure, HttpOnly, SameSite).