Reflected XSS
Was ist Reflected XSS?
Reflected XSS (Reflektiertes Cross-Site Scripting) ist eine Web-Sicherheitsschwachstelle, bei der Schadcode über URL-Parameter oder Formularfelder an den Server gesendet und sofort im Response an den Benutzer zurückgegeben wird. Im Gegensatz zu persistenten XSS-Angriffen wird der Schadcode nicht gespeichert, sondern wirkt nur temporär – typischerweise beim einmaligen Anklicken eines präparierten Links.
Diese Art von Angriff tritt auf, wenn Anwendungen Benutzereingaben ungefiltert oder nicht korrekt kontextualisiert in den HTML-Output einbinden. Dadurch kann z. B. JavaScript im Browser des Opfers ausgeführt werden.
Wichtige Reflected-XSS-Ressourcen
-
DAST-Tools (Dynamic Application Security Testing)
→ Automatisierte Scanner zur Erkennung reflektierter XSS-Schwachstellen in Webanwendungen. -
Contextual Output Encoding
→ Technik, um Benutzereingaben abhängig vom Kontext korrekt zu maskieren (z. B. HTML, JavaScript, URL). -
Content Security Policy (CSP)
→ Web-Sicherheitsheader, die die Ausführung von nicht autorisierten Skripten einschränken. -
Whitelist-Validierung
→ Validierung von Eingabewerten gegen erlaubte Muster, um gefährliche Zeichen auszuschließen. -
HTML-Entity-Encoding
→ Umwandlung potenziell gefährlicher Zeichen wie<
,>
,"
in sichere HTML-Entitäten.
Anwendung in der Praxis
-
Social Engineering: Angreifer versenden XSS-verseuchte Links per E-Mail oder Messenger.
-
Reflected Response: Die Anwendung spiegelt die Eingabe (z. B.
?q=<script>
) im HTML-Code wider. -
Exploit-Ziel: Die Ausführung von JavaScript im Browser ermöglicht z. B. Session-Diebstahl.
-
Erkennung: Sicherheitsanalysen prüfen gezielt auf reflektierende Parameter.
-
Prävention: Durchgängig korrektes Encoding, CSP-Header und sichere Frameworks verhindern XSS.
Verwandte Begriffe
-
Persistentes XSS
-
Secure Coding
-
DAST
Beispiel aus der Praxis
Ein Onlineformular zur Produktsuche übernimmt den Query-Parameter
q
und zeigt ihn ungefiltert im Suchergebnis an. Ein Angreifer versendet einen präparierten Link wiehttps://shop.example.com/search?q=<script>alert('XSS')</script>
. Beim Aufruf führt die Webseite den Schadcode im Browser des Opfers aus. Nach Analyse stellt das Entwicklungsteam fest, dass kein HTML-Encoding stattfand. Durch kontextabhängiges Encoding und die Einführung einer Content-Security-Policy kann der Angriff nachhaltig verhindert werden.