Was ist Cross-Site-Scripting (XSS)?
Cross-Site-Scripting (XSS) ist eine Angriffsart, bei der Angreifer Schadcode, meist JavaScript, in eine Webseite einschleusen. Der Code läuft dann im Browser fremder Besucher und kann Sitzungen übernehmen, Eingaben mitlesen oder Inhalte fälschen, weil der Browser ihn für einen Teil der echten Website hält.

XSS: Definition und Ursache
Eine Website wird verwundbar, wenn sie Eingaben von Nutzern ungeprüft in ihre Seiten einbaut – etwa Kommentare, Suchbegriffe oder Profilangaben. Enthält die Eingabe Skriptcode, führt der Browser des nächsten Besuchers ihn aus, als gehöre er zur Seite. Damit gelten für den Code dieselben Rechte wie für den legitimen Seitencode.
XSS gehört seit Jahren zu den häufigsten Schwachstellen von Webanwendungen und wird in den OWASP Top 10 der Kategorie Injection zugerechnet. Anders als bei SQL-Injection ist nicht der Server das unmittelbare Ziel, sondern die Besucher und Administratoren der Website.
Die drei Arten von XSS
Beim gespeicherten (stored) XSS wird der Schadcode dauerhaft abgelegt, etwa in einem Kommentar, und trifft jeden, der die Seite aufruft. Beim reflektierten (reflected) XSS steckt er in einem präparierten Link, der zum Beispiel per Phishing-Mail verschickt wird. Beim DOM-basierten XSS entsteht die Lücke erst durch JavaScript im Browser, das Daten unsicher in die Seite schreibt.
- Übernahme von Sitzungen und Benutzerkonten
- Mitlesen von Eingaben, etwa Passwörtern oder Zahlungsdaten
- Einblenden gefälschter Formulare auf der echten Seite
- Weiterleitung auf Schadseiten
- Angriffe auf Administratoren über das Backend
Praxisbeispiel: Die Bewertung im Onlineshop
Ein Onlineshop erlaubt Produktbewertungen und gibt den Text ungefiltert wieder. Ein Angreifer hinterlegt statt einer Bewertung ein kleines Skript. Öffnet später ein Shop-Administrator die Bewertung im Backend, könnte das Skript dessen Sitzungsschlüssel abgreifen und dem Angreifer den Zugang zur Verwaltung verschaffen.
Der Shop schützt sich, indem er Ausgaben je nach Kontext kodiert, sodass Skripte nur als Text erscheinen, Sitzungs-Cookies mit den Attributen HttpOnly und SameSite absichert und eine Content Security Policy (CSP) einsetzt, die nur erlaubte Skriptquellen zulässt. Das Backend bereinigt Bewertungen zusätzlich vor der Anzeige.
Schutz, Grenzen und Umsetzung
Wichtigste Maßnahme ist die kontextgerechte Ausgabekodierung: Daten werden vor der Anzeige so maskiert, dass der Browser sie als Text und nicht als Code behandelt. Moderne Frameworks wie React tun das standardmäßig, solange Entwickler es nicht gezielt umgehen. Die CSP begrenzt den Schaden, wenn doch etwas durchrutscht; erlaubtes HTML, etwa aus Texteditoren, wird mit geprüften Bibliotheken bereinigt.
Nano Concepts prüft Webanwendungen und Shops auf XSS, behebt Lücken im Code und in Plugins und richtet sicherheitsrelevante HTTP-Header wie die Content Security Policy ein. Bei neuen Projekten achten wir von Anfang an darauf, dass Nutzereingaben nie ungeprüft in Seiten gelangen.
- Eingaben ungeprüft in Seiten ausgeben, vor allem in Kommentaren und Suchfeldern
- innerHTML oder vergleichbare Funktionen mit Nutzerdaten verwenden
- Nur auf Eingabefilter statt auf Ausgabekodierung setzen
- Drittanbieter-Skripte und Plugins ohne Prüfung einbinden
- Keine Content Security Policy und keine abgesicherten Cookies
Häufige Fragen zu Cross-Site-Scripting (XSS)
Bei SQL-Injection wird die Datenbank des Servers manipuliert, bei XSS läuft Schadcode im Browser der Besucher. Beide entstehen, wenn Eingaben ungeprüft weiterverwendet werden, und gehören zur Kategorie Injection. Die Gegenmaßnahmen unterscheiden sich: parametrisierte Abfragen dort, Ausgabekodierung hier.
Das hängt vom Ort der Lücke ab. Trifft sie Administratoren oder angemeldete Kunden, kann Schadcode Sitzungen übernehmen oder Eingaben mitlesen. Auch bei Seiten ohne Login kann sie Besucher auf Schadseiten leiten oder gefälschte Formulare einblenden. Das Risiko ist real und gut vermeidbar.
Durch kontextgerechte Ausgabekodierung, geprüfte Frameworks, bereinigtes HTML aus Editoren, Cookies mit HttpOnly und SameSite sowie eine Content Security Policy. Zusätzlich helfen Updates von CMS und Plugins und regelmäßige Sicherheitstests, bevor Angreifer Schwachstellen finden.
Eine Content Security Policy (CSP) ist eine HTTP-Regel, die dem Browser mitteilt, aus welchen Quellen Skripte, Bilder und andere Inhalte geladen werden dürfen. Sie begrenzt den Schaden von XSS, weil eingeschleuste Skripte aus nicht erlaubten Quellen blockiert werden.
Passende Leistungen

IT-Sicherheit für Web
Schwachstellen finden und schließen – für Websites, Shops, Kundenportale und individuelle Webanwendungen.
Mehr erfahren
Schwachstellenanalyse Website
Sicherheitsprüfung Ihrer Website oder Web-App entlang der OWASP Top 10 – mit priorisierter Mängelliste und Behebung.
Mehr erfahren
WordPress-Sicherheit
Sicherheitscheck und Härtung für WordPress: sichere Logins, geprüfte Plugins, verlässliche Backups und Server-Einstellungen.
Mehr erfahrenVerwandte Begriffe
Relevant für diese Branchen
Passende Magazin-Beiträge

Web-Sicherheit: OWASP Top 10 und pragmatische Checkliste für Teams
Die meisten Sicherheitslücken folgen bekannten Mustern. Mit den OWASP Top 10 als Leitplanke und einer priorisierten Checkliste schließen Sie typische Lücken, bevor sie zum Problem werden.
Weiterlesen
Software-Wartung: Was ein Wartungsvertrag leisten sollte
Software ist nie fertig. Welche Leistungen ein Wartungsvertrag umfassen sollte, wie Sie Wartung, Support und Weiterentwicklung abgrenzen und welchen Umfang Ihre Software wirklich braucht.
WeiterlesenDSGVO-konformes Tracking: Consent, Datenflüsse und Vertrauen
Tracking und Datenschutz schließen sich nicht aus: Welche Dienste eine Einwilligung brauchen, wie Sie Datenflüsse dokumentieren und die Technik so umsetzen, dass sie hält, was die Datenschutzerklärung verspricht.
Weiterlesen