Skip to main content
Alle Termen Glossary

DOM Sanitization

Definition

DOM Sanitization is het proces van het opschonen en valideren van HTML-content voordat het wordt ingevoegd in het Document Object Model, wat helpt XSS-aanvallen en andere injectiekwetsbaarheden te voorkomen. Moderne browsers bieden ingebouwde sanitizer-API's, terwijl verschillende bibliotheken sanitisatiefuncties aanbieden. Juiste sanitisatie is cruciaal bij het omgaan met door gebruikers gegenereerde content of third-party gegevens die als HTML moeten worden gerenderd.

Wat DOM-sanitization is

DOM-sanitization is het proces van het opschonen van niet-vertrouwde HTML zodat die in een pagina kan worden ingevoegd zonder uitvoerbare of gevaarlijke markup mee te dragen. Wanneer code een string toewijst aan innerHTML, outerHTML of een vergelijkbare DOM-sink, parseert de browser die tot levende nodes, inclusief elke scripttag, onerror-handler, javascript:-URL of andere actieve content die erin zit. Een sanitizer parseert die HTML, doorloopt de resulterende boom en verwijdert of herschrijft alles wat niet op een allowlist van veilige tags en attributen staat, waarna markup overblijft die weergeeft zoals bedoeld maar geen code kan uitvoeren. Bibliotheken zoals DOMPurify doen dit robuust, en browsers leveren inmiddels een native Sanitizer API en de veiligere setHTML-methode voor hetzelfde doel.

Waarom sanitization belangrijk is

Sanitization is een primaire verdediging tegen DOM-based en stored XSS. Elke functie die door gebruikers gegenereerde of third-party content als HTML weergeeft, reacties, rich-text-velden, chatberichten of CMS-blokken, is een potentieel injectiepunt, en simpel escapen is niet genoeg wanneer de content werkelijk als HTML bedoeld is. Naïeve benaderingen, zoals het blacklisten van de scripttag of het gebruik van een regex om elementen te strippen, missen de enorme ruimte aan parser-trucs: mutation-XSS, misvormde markup die browsers repareren tot uitvoerbare vorm, SVG- en MathML-eigenaardigheden met foreign content, en event-handler-attributen. Een gedegen geteste sanitizer die op de geparseerde boom werkt in plaats van op ruwe tekst dicht deze gaten en verandert een kwetsbaarheid met hoge ernst in inerte uitvoer.

Best practice, en cside's aanvullende rol

Geef de voorkeur aan veilige sinks zoals textContent of framework-binding, en grijp alleen naar HTML-invoeging wanneer het echt moet; sanitize dan met een onderhouden bibliotheek zoals DOMPurify of de native Sanitizer API in plaats van zelfgebouwde filters, en houd die bijgewerkt naarmate nieuwe bypasses worden gevonden. Combineer het met een strikte Content Security Policy zodat een gemiste payload alsnog niet kan worden uitgevoerd. Sanitization leeft in je eigen code, dus het dekt niet wat een gecompromitteerd third-party script doet nadat het is geladen, aangezien dat script zelf innerHTML kan aanroepen. cside pakt dat gat aan door third-party scripts via een Script-methode te routeren en de payload te analyseren, waarbij het onveilige DOM-writes die deze scripts proberen detecteert en blokkeert en ze vastlegt voor forensisch onderzoek.

Meer informatie
Definitie

Is escapen hetzelfde als DOM-sanitization?

Nee. Escapen zet tekens zoals de punthaken om in HTML-entiteiten zodat tekst letterlijk wordt weergegeven, wat correct is wanneer je markup als platte tekst wilt tonen. Sanitization houdt de content als echte HTML maar verwijdert de gevaarlijke delen. Gebruik escapen voor tekstuitvoer en sanitization alleen wanneer content van gebruikers als daadwerkelijke markup moet worden weergegeven.

Definitie

Moet ik mijn eigen HTML-sanitizer schrijven?

Vrijwel nooit. HTML-parsing in browsers kent talloze randgevallen, foreign content, mutatie-eigenaardigheden en herstel van misvormde markup, die zelfgeschreven filters en regexes missen, wat tot bypasses leidt. Gebruik een onderhouden, breed geteste bibliotheek zoals DOMPurify of de ingebouwde Sanitizer API, en houd die bijgewerkt naarmate onderzoekers nieuwe ontwijkingstechnieken ontdekken.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Boek een demo

Wil je dit doornemen met een engineer?

Dertig minuten, op je eigen site. Geen slides.

We laten je zien:

Welke scripts van derden er nu op je site draaien
Hoe je ervoor staat op PCI DSS 6.4.3 en 11.6.1
Welk deel van je verkeer uit bots en AI-agents bestaat

Liever gewoon een vraag stellen?

Vrije momenten zoeken…

Alleen echte mensen. Wij merken het.

Lukt het boeken niet? Agenda in een nieuw tabblad openen

Wat wil je oplossen?

Vertel het ons in één zin, dan komen we terug met iets bruikbaars in plaats van een standaardverhaal.

Waar we meestal mee helpen:

Zien welke scripts van derden op je site draaien
Bewijs voor PCI DSS 6.4.3 en 11.6.1
Bots, AI-agents en accountovername

Liever meteen een moment inplannen? Kies een tijdstip