Zum Inhalt springen

XSS (Cross-Site Scripting)

oder auch Cross-Site Scripting

Männliche Person, frontal, schaut in die Kamera; trägt kariertes Hemd über dunkelfarbigem T‑Shirt; heller Innenraum mit unscharfem Monitor oder Poster links und Fenster rechts.

von Richard Albrecht am 04.11.2026

XSS ist ein Angriff, bei dem fremder Code im Browser der Besucher im Namen der Seite läuft. Die Abkürzung steht für Cross-Site Scripting. Weil der Code von der richtigen Adresse kommt, darf er alles, was die Seite selbst darf.

XSS

Ein Angriff, bei dem fremder Code im Browser der Besucher im Namen der Seite läuft.
Beispiel: „Das XSS steckte in einem Kommentarfeld, das HTML durchließ.“

Auch: Möglich werden damit das Auslesen von Sitzungsdaten, das Umschreiben der Seite, das Mitlesen von Eingaben und Weiterleitungen auf nachgebaute Anmeldeseiten.

Abgrenzung zur SQL Injection: Beide entstehen aus ungeprüften Eingaben. Die eine wirkt in der Datenbank, die andere im Browser.

Welche Arten von XSS es gibt

Drei, nach dem Weg des Codes. Gespeichertes XSS liegt in der Datenbank, etwa in einem Kommentar, und trifft jeden Besucher der Seite. Reflektiertes XSS steckt in einem Link und trifft den, der ihn anklickt. DOM-basiertes XSS entsteht erst im Browser, wenn JavaScript ungeprüfte Werte in die Seite schreibt.

Was gegen XSS hilft

Maskieren an der Ausgabe, und zwar passend zur Stelle.

<!-- Angreifbar: der Name landet ungeprüft im HTML -->
<p>Hallo <?= $name ?></p>

<!-- Sicher: die Sonderzeichen werden maskiert -->
<p>Hallo <?= htmlspecialchars($name, ENT_QUOTES, 'UTF-8') ?></p>

Jede Vorlagensprache bringt diese Maskierung mit, oft sogar eingeschaltet. Wichtig ist der Kontext: In einem Attribut, in einer Adresse und innerhalb von JavaScript gelten andere Regeln als im Fließtext. Dazu kommt die Content Security Policy, die fremde Skripte gar nicht erst ausführen lässt, und das Merkmal HttpOnly am Sitzungscookie, damit Skripte es nicht lesen können.

Wo XSS im Alltag entsteht

An den Rändern. Kommentarfelder und Bewertungen, Suchergebnisseiten, die den Suchbegriff anzeigen, Fehlermeldungen mit Benutzereingaben, Felder im CMS, die HTML erlauben, und eingebundene Skripte fremder Anbieter. Der letzte Fall ist der unangenehmste, weil der Code dort regelmäßig wechselt.

Siehe auch:

JavaScript

Die Programmiersprache, die in jedem Browser mitläuft und einer Seite Verhalten gibt.

#Programmiersprachen

CSRF (Cross-Site Request Forgery)

Ein Angriff, bei dem der Browser eines angemeldeten Nutzers ungewollt eine Aktion auslöst.

#Web-Security

Content Security Policy (CSP)

Eine Regel im HTTP-Header, die dem Browser sagt, aus welchen Quellen er etwas laden darf.

#Web-Security

Security Headers

HTTP-Header, mit denen eine Seite dem Browser Sicherheitsregeln für ihre Anzeige mitgibt.

#Web-Security

SQL Injection

Ein Angriff, bei dem eine Eingabe zum Teil der Datenbankabfrage wird.

#Web-Security

OWASP Top 10

Die Liste der zehn wichtigsten Risikogruppen in Webanwendungen, herausgegeben vom OWASP.

#Web-Security