Securam Consulting Logo

Das große IT-Security-Glossar

Definition:

DOM-Based XSS


Was ist DOM-Based XSS?

DOM-Based XSS (Document Object Model Based Cross-Site Scripting) ist eine spezifische Form von Cross-Site Scripting, bei der sich die Schwachstelle ausschließlich im clientseitigen JavaScript-Code befindet. Im Gegensatz zu reflektierten oder persistenten XSS-Angriffen erfolgt bei DOM-Based XSS keine Kommunikation mit dem Server – stattdessen werden manipulierte Daten direkt im Browser über das DOM verarbeitet und anschließend als Schadcode ausgeführt.

Diese Angriffsform nutzt unsichere DOM-Zugriffe, beispielsweise document.URL, document.location oder location.hash, um Werte aus der URL auszulesen und über gefährliche DOM-APIs wie innerHTML, document.write() oder eval() ohne vorherige Validierung einzubinden.


Technischer Aufbau & Varianten

Typische Angriffspunkte:

  • Direktes Einfügen von URL-Parametern via innerHTML

  • Nutzung von eval() mit unvalidierten Daten

  • Manipulation von DOM-Knoten über document.write() oder appendChild()

  • Dynamische Skripte, die Daten aus window.location ohne Encoding verwenden

Sicherheitsrisiken entstehen vor allem in Single-Page-Applications (SPAs), in denen die gesamte Logik clientseitig verarbeitet wird. Die Schwachstellen werden häufig über JavaScript-Bibliotheken oder benutzerdefinierte Event-Handler eingeführt.

Schutzmaßnahmen:

  • Trusted Types: Browser-Funktion zum Blockieren unsicherer DOM-Zuweisungen

  • Konsequentes Escaping aller Daten vor der DOM-Ausgabe

  • Verzicht auf eval() und verwandte APIs

  • Frameworks wie React oder Angular nutzen Virtual DOMs und eingebauten Schutz vor XSS


Relevanz in der Praxis

DOM-Based XSS ist besonders heimtückisch, da der Angreifer keine Serverinteraktion benötigt und konventionelle Filtersysteme häufig keine Anzeichen erkennen. Angriffe können durch:

  • E-Mails mit manipulierten Links

  • Angreifer-kontrollierte Referrer-URLs

  • Drittanbieter-Skripte

ausgelöst werden. Selbst auf HTTPS-geschützten Seiten kann so Schadcode ausgeführt werden. Unternehmen mit clientzentrierten Webanwendungen (z. B. Banken, Shops) sind besonders gefährdet.


Standards & regulatorische Anforderungen

  • OWASP Top 10 – A3:2021 Injection

  • ISO/IEC 27001 – Kontrolle A.14.2.1: Secure Development Policy

  • BSI C5 – Anforderungen an sichere Webapplikationen

  • W3C Trusted Types – API-Spezifikation zum Schutz vor DOM-XSS


Verwandte Begriffe


Beispiel aus der Praxis

Ein Onlineshop implementierte ein Bewertungssystem, bei dem Nutzerkommentare über den URL-Hash (#comment=) geladen und per innerHTML eingebunden wurden.
Ein Angreifer nutzte diese Schwachstelle, um ein JavaScript-Snippet in die Seite einzubetten, das Cookies auslas und an einen externen Server sendete.
Die Schwachstelle wurde erst entdeckt, nachdem Nutzer über Phishing-Login-Masken berichteten, die sich plötzlich öffneten.