Torna agli aggiornamenti
New releaseAug 3, 2026

DOMPurify v3.4.13

DOMPurify - un sanitizer XSS DOM-only, super veloce, ultra-tollerante per HTML, MathML e SVG. DOMPurify funziona con impostazioni predefinite sicure, ma offre molta configurabilità e hook. Demo:

Condividi

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 è un sanitizzatore XSS per HTML, MathML e SVG, esclusivamente DOM-based, super veloce e ultra tollerante.

È anche molto semplice da usare e da iniziare. DOMPurify è stato avviato a febbraio 2014 e, nel frattempo, ha raggiunto la versione v3.4.15.

DOMPurify gira come JavaScript e funziona in tutti i browser moderni (Safari (10+), Opera (15+), Edge, Firefox e Chrome - oltre a quasi qualsiasi altro browser basato su Blink, Gecko o WebKit). Non si rompe su MSIE o altri browser legacy. Semplicemente non fa nulla.

Nota che DOMPurify v2.5.9 è l'ultima versione che supporta MSIE. Per importanti aggiornamenti di sicurezza compatibili con MSIE, utilizza il ramo 2.x.

I nostri test automatizzati coprono 9 combinazioni browser/OS sui motori attuali (Chromium, Firefox e WebKit su Ubuntu, macOS e Windows) a ogni push, e una matrice separata riesegue la suite su snapshot di motori più vecchi (fino a circa Chromium 110, Firefox 108 e WebKit 16.4, di circa tre anni fa) così da intercettare anche regressioni su browser obsoleti. Eseguiamo anche Node.js v20, v22, v24, v25 e v26 con DOMPurify su jsdom. Anche versioni più vecchie di Node sono note per funzionare, ma... nessuna garanzia.

DOMPurify è scritto da esperti di sicurezza con una vasta esperienza in attacchi web e XSS. Nessun timore. Per maggiori dettagli, ti invitiamo a leggere anche i nostri Obiettivi di Sicurezza e Modello di Minaccia. Per favore, leggilo. Sul serio. E se ti piacciono i dettagli cruenti, la pagina Classi di Attacco e Storia dei Bypass cataloga i trucchi di mutazione del parser, namespace, clobbering e template contro cui DOMPurify si difende.

Il progetto DOMPurify ha ispirato la creazione dell'API HTML Sanitizer, che è già disponibile in molti browser. La stessa capacità è ora in fase di standardizzazione direttamente nella specifica HTML del WHATWG.

Indice dei contenuti

Cosa fa?

DOMPurify sanifica l'HTML e previene gli attacchi XSS. Puoi fornire a DOMPurify, ad esempio, una stringa piena di HTML sporco e restituirà una stringa (a meno che non sia configurato diversamente) con HTML pulito. DOMPurify eliminerà tutto ciò che contiene HTML pericoloso e quindi previene attacchi XSS e altre cose sgradevoli. È anche dannatamente veloce. Utilizziamo le tecnologie che il browser fornisce e le trasformiamo in un filtro XSS. Più veloce è il tuo browser, più veloce sarà DOMPurify.

Come lo uso?

È facile. Basta includere DOMPurify sul tuo sito web.

Utilizzo della versione non minimizzata (source-map disponibile)```html

### Utilizzo della versione di produzione minificata e testata (source-map disponibile)```html
<script type="text/javascript" src="dist/purify.min.js"></script>

Dopodiché puoi sanificare le stringhe eseguendo il seguente codice:```js const clean = DOMPurify.sanitize(dirty);

Oppure questo, se ami lavorare con Angular o simili:```js
import DOMPurify from 'dompurify';

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

L'HTML risultante può essere scritto in un elemento DOM tramite innerHTML o nel DOM usando document.write(). Dipende interamente da te. Nota che, per impostazione predefinita, consentiamo HTML, SVG e MathML. Se ti serve solo HTML, che potrebbe essere un caso d'uso molto comune, puoi configurarlo facilmente anche in quel modo:```js const clean = DOMPurify.sanitize(dirty, { USE_PROFILES: { html: true } });

### Ci sono potenziali insidie?

Beh, tieni presente che se _prima_ sanifichi l'HTML e poi lo modifichi _successivamente_, potresti facilmente **annullare gli effetti della sanificazione**. Se passi il markup sanificato a un'altra libreria _dopo_ la sanificazione, assicurati che la libreria non alteri l'HTML di propria iniziativa. Consulta gli [Obiettivi di Sicurezza e il Modello di Minaccia](https://github.com/cure53/DOMPurify/wiki/Security-Goals-&-Threat-Model) per ricette di utilizzo sicuro e per i tag e gli attributi su cui vale la pena riflettere due volte, e le [Classi di Attacco e la Storia dei Bypass](https://github.com/cure53/DOMPurify/wiki/Attack-Classes-&-Bypass-History) per capire perché la post-elaborazione e la modifica del contesto del markup compromettono la sanificazione.

### Ok, ha senso, andiamo avanti

Dopo aver sanificato il tuo markup, puoi anche dare un'occhiata alla proprietà `DOMPurify.removed` e scoprire quali elementi e attributi sono stati scartati. Ti preghiamo di **non utilizzare** questa proprietà per prendere decisioni critiche per la sicurezza. È solo un piccolo aiuto per le menti curiose.

### Eseguire DOMPurify sul server

DOMPurify tecnicamente funziona anche lato server con Node.js. Il nostro supporto cerca di seguire il [ciclo di rilascio di Node.js](https://nodejs.org/en/about/previous-releases).

Eseguire DOMPurify sul server richiede la presenza di un DOM, il che probabilmente non sorprende. Di solito, [jsdom](https://github.com/jsdom/jsdom) è lo strumento di elezione e **raccomandiamo vivamente** di utilizzare l'ultima versione di _jsdom_.

Categorie