XSS Basé sur le DOM
Qu'est-ce que XSS Basé sur le DOM ?
XSS Basé sur le DOMVariante de XSS où l'injection et l'exécution se produisent entièrement dans le navigateur, du JavaScript client écrivant des données non assainies dans un sink dangereux.
Le XSS basé sur le DOM (Type 0) est une faille de cross-site scripting dont la cause réside entièrement dans le code côté client. Une source de données — comme location.hash, document.referrer, window.name, postMessage ou localStorage — est passée sans assainissement vers un sink dangereux du DOM (innerHTML, document.write, eval, jQuery.html). Le serveur ne voit jamais la charge, ce qui rend la vulnérabilité invisible aux WAF et journaux serveur. Les défenses incluent l'utilisation d'API sûres comme textContent, l'activation de Trusted Types dans les navigateurs modernes, une CSP stricte et l'audit du JavaScript via des outils de suivi des données.
● Exemples
- 01
document.getElementById('out').innerHTML = location.hash.substring(1);
- 02
Un routeur SPA utilise window.location pour insérer du HTML non assaini dans un template.
● Questions fréquentes
Qu'est-ce que XSS Basé sur le DOM ?
Variante de XSS où l'injection et l'exécution se produisent entièrement dans le navigateur, du JavaScript client écrivant des données non assainies dans un sink dangereux. Cette notion relève de la catégorie Attaques et menaces en cybersécurité.
Que signifie XSS Basé sur le DOM ?
Variante de XSS où l'injection et l'exécution se produisent entièrement dans le navigateur, du JavaScript client écrivant des données non assainies dans un sink dangereux.
Comment fonctionne XSS Basé sur le DOM ?
Le XSS basé sur le DOM (Type 0) est une faille de cross-site scripting dont la cause réside entièrement dans le code côté client. Une source de données — comme location.hash, document.referrer, window.name, postMessage ou localStorage — est passée sans assainissement vers un sink dangereux du DOM (innerHTML, document.write, eval, jQuery.html). Le serveur ne voit jamais la charge, ce qui rend la vulnérabilité invisible aux WAF et journaux serveur. Les défenses incluent l'utilisation d'API sûres comme textContent, l'activation de Trusted Types dans les navigateurs modernes, une CSP stricte et l'audit du JavaScript via des outils de suivi des données.
Comment se défendre contre XSS Basé sur le DOM ?
Les défenses contre XSS Basé sur le DOM combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de XSS Basé sur le DOM ?
Noms alternatifs courants : XSS Type 0, XSS côté client.
● Termes liés
- attacks№ 240
Cross-Site Scripting (XSS)
Vulnérabilité web permettant à un attaquant d'injecter des scripts malveillants dans des pages consultées par d'autres utilisateurs, exécutés dans leur navigateur sous l'origine du site.
- attacks№ 1107
XSS Stocké
Faille XSS persistante : le script de l'attaquant est enregistré sur le serveur puis exécuté dans le navigateur de chaque visiteur.
- attacks№ 912
XSS Réfléchi
XSS non persistant où l'entrée contrôlée par l'attaquant est immédiatement reflétée dans la réponse et exécutée dans le navigateur de la victime.
- appsec№ 214
Politique de sécurité du contenu (CSP)
En-tête HTTP indiquant au navigateur quelles sources de scripts, styles, cadres et autres contenus sont autorisées, limitant l'impact des XSS et des injections de données.
- vulnerabilities№ 869
Pollution de prototype
Vulnérabilité JavaScript où une entrée non fiable modifie Object.prototype, injectant des propriétés dans tous les objets et altérant le comportement de l'application, voire menant à un RCE.
- appsec№ 773
Encodage de sortie
Transformation des données non fiables dans une forme sûre pour un contexte précis (HTML, JavaScript, URL, SQL, shell) afin qu'elles ne s'évadent pas pour être exécutées comme du code.
● Voir aussi
- № 104XSS Aveugle