Retour aux mises à jour
New releaseAug 3, 2026

DOMPurify v3.4.13

DOMPurify - un sanitiseur XSS uniquement DOM, ultra-rapide et ultra-tolérant, pour HTML, MathML et SVG. DOMPurify fonctionne avec une configuration sécurisée par défaut, mais offre de nombreuses options de configuration et des hooks. Démo :

Partager

DOMPurify

npm License Downloads dependents npm package minimized gzipped size (select exports) Cloudback

OpenSSF Best Practices Build & Test OpenSSF Scorecard Socket Badge snyk.io package health

DOMPurify est un assainisseur XSS ultra-rapide, ultra-tolérant et exclusivement basé sur le DOM pour HTML, MathML et SVG.

Il est également très simple à utiliser et à prendre en main. DOMPurify a été lancé en février 2014 et a, entre-temps, atteint la version v3.4.15.

DOMPurify fonctionne en JavaScript et est compatible avec tous les navigateurs modernes (Safari (10+), Opera (15+), Edge, Firefox et Chrome — ainsi qu'avec presque tout ce qui utilise Blink, Gecko ou WebKit). Il ne casse pas sur MSIE ou d'autres navigateurs hérités. Il ne fait simplement rien.

Notez que DOMPurify v2.5.9 est la dernière version prenant en charge MSIE. Pour les mises à jour de sécurité importantes compatibles avec MSIE, veuillez utiliser la branche 2.x.

Nos tests automatisés couvrent 9 combinaisons navigateur/système d'exploitation sur les moteurs actuels (Chromium, Firefox et WebKit sur Ubuntu, macOS et Windows) à chaque push, et une matrice distincte réexécute la suite sur des instantanés de moteurs plus anciens (remontant à environ Chromium 110, Firefox 108 et WebKit 16.4, soit environ trois ans) afin que les régressions sur les navigateurs obsolètes soient également détectées. Nous exécutons également Node.js v20, v22, v24, v25 et v26 avec DOMPurify sur jsdom. Les versions plus anciennes de Node sont également connues pour fonctionner, mais bon... aucune garantie.

DOMPurify est écrit par des experts en sécurité possédant une vaste expérience des attaques web et du XSS. N'ayez crainte. Pour plus de détails, veuillez également lire notre Modèle de menaces et objectifs de sécurité. Lisez-le, vraiment. Et si vous appréciez les détails sanglants, la page Classes d'attaques et historique des contournements catalogue les astuces de mutation du parseur, de namespace, de clobbering et de template contre lesquelles DOMPurify se défend.

Le projet DOMPurify a inspiré la création de l'API HTML Sanitizer, qui est déjà déployée dans de nombreux navigateurs. La même capacité est désormais en cours de standardisation directement dans la spécification HTML du WHATWG.

Table des matières

Que fait-il ?

DOMPurify assainit le HTML et prévient les attaques XSS. Vous pouvez fournir à DOMPurify, par exemple, une chaîne remplie de HTML sale et il renverra une chaîne (sauf configuration contraire) contenant du HTML propre. DOMPurify supprimera tout ce qui contient du HTML dangereux, prévenant ainsi les attaques XSS et autres nuisances. C'est aussi sacrément rapide. Nous utilisons les technologies fournies par le navigateur et les transformons en filtre XSS. Plus votre navigateur est rapide, plus DOMPurify le sera.

Comment l'utiliser ?

C'est simple. Il suffit d'inclure DOMPurify sur votre site web.

Utilisation de la version non minifiée (source-map disponible)```html

### Utilisation de la version de production minifiée et testée (source-map disponible)```html
<script type="text/javascript" src="dist/purify.min.js"></script>

Ensuite, vous pouvez assainir les chaînes de caractères en exécutant le code suivant :```js const clean = DOMPurify.sanitize(dirty);

Ou peut-être ceci, si vous aimez travailler avec Angular ou similaire :```js
import DOMPurify from 'dompurify';

const clean = DOMPurify.sanitize('<b>hello there</b>');

Le HTML résultant peut être écrit dans un élément du DOM via innerHTML ou dans le DOM via document.write(). Cela dépend entièrement de vous. Notez que par défaut, nous autorisons le HTML, le SVG et le MathML. Si vous n'avez besoin que du HTML, ce qui peut être un cas d'usage très courant, vous pouvez facilement le configurer également :```js const clean = DOMPurify.sanitize(dirty, { USE_PROFILES: { html: true } });

### Y a-t-il un risque de tir dans le pied ?

Eh bien, veuillez noter que si vous _d'abord_ assainissez le HTML puis le modifiez _ensuite_, vous risquez facilement **d'annuler les effets de l'assainissement**. Si vous transmettez le balisage assaini à une autre bibliothèque _après_ l'assainissement, assurez-vous que cette bibliothèque ne bricole pas le HTML de son côté. Consultez les [Objectifs de sécurité et modèle de menace](https://github.com/cure53/DOMPurify/wiki/Security-Goals-&-Threat-Model) pour des recettes d'utilisation sûres et les balises/attributs à examiner de plus près, ainsi que les [Classes d'attaques et historique des contournements](https://github.com/cure53/DOMPurify/wiki/Attack-Classes-&-Bypass-History) pour comprendre pourquoi le post-traitement et la modification du contexte du balisage compromettent l'assainissement.

### D'accord, ça a du sens, passons à la suite

Après avoir assaini votre balisage, vous pouvez également consulter la propriété `DOMPurify.removed` pour découvrir quels éléments et attributs ont été rejetés. Veuillez **ne pas utiliser** cette propriété pour prendre des décisions critiques en matière de sécurité. Ce n'est qu'un petit outil pour les esprits curieux.

### Exécuter DOMPurify côté serveur

Catégories