Essayez de saisir, dans les deux champs ci-dessous : <img src=x onerror="alert('XSS DOM-based')">

Vulnérable : innerHTML

element.innerHTML = valeur interprète la valeur comme du HTML : une balise <img onerror=...> exécute son gestionnaire d'évènement.

Sécurisé : textContent

element.textContent = valeur insère la valeur comme du texte brut : la balise <img> est affichée littéralement et n'est jamais interprétée par le navigateur.