Volver a actualizaciones
Nuevo releaseAug 3, 2026

DOMPurify v3.4.13

DOMPurify: un sanitizador XSS exclusivo para DOM, súper rápido y ultra tolerante, para HTML, MathML y SVG. DOMPurify funciona con una configuración segura por defecto, pero ofrece mucha configurabilidad y hooks. Demo:

Compartir

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 es un sanitizador XSS exclusivo de DOM, ultrarrápido y extremadamente tolerante para HTML, MathML y SVG.

También es muy sencillo de usar y de empezar a trabajar con él. DOMPurify fue iniciado en febrero de 2014 y, mientras tanto, ha alcanzado la versión v3.4.15.

DOMPurify se ejecuta como JavaScript y funciona en todos los navegadores modernos (Safari (10+), Opera (15+), Edge, Firefox y Chrome, así como prácticamente cualquier otro que use Blink, Gecko o WebKit). No se rompe en MSIE ni en otros navegadores heredados. Simplemente no hace nada.

Ten en cuenta que DOMPurify v2.5.9 es la última versión compatible con MSIE. Para actualizaciones de seguridad importantes compatibles con MSIE, usa la rama 2.x.

Nuestras pruebas automatizadas cubren 9 combinaciones de navegador/SO en los motores actuales (Chromium, Firefox y WebKit en Ubuntu, macOS y Windows) en cada push, y una matriz separada vuelve a ejecutar el conjunto en instantáneas de motores más antiguos (hasta aproximadamente Chromium 110, Firefox 108 y WebKit 16.4, de unos tres años de antigüedad) para que también se detecten regresiones en navegadores desactualizados. También ejecutamos Node.js v20, v22, v24, v25 y v26 con DOMPurify en jsdom. Se sabe que las versiones más antiguas de Node también funcionan, pero... no hay garantías.

DOMPurify está escrito por personas de seguridad con amplia experiencia en ataques web y XSS. No temas. Para más detalles, te recomendamos leer también nuestros Objetivos de Seguridad y Modelo de Amenazas. Por favor, léelo. En serio. Y si disfrutas de los detalles escabrosos, la página de Clases de Ataque e Historial de Bypass cataloga los trucos de mutación de parser, namespaces, clobbering y plantillas contra los que DOMPurify se defiende.

El proyecto DOMPurify inspiró la creación de la API de Sanitización HTML, que ya se está implementando en muchos navegadores. La misma capacidad ahora se está estandarizando directamente en la especificación HTML de WHATWG.

Tabla de contenidos

¿Qué hace?

DOMPurify sanitiza HTML y previene ataques XSS. Puedes alimentar a DOMPurify, por ejemplo, con una cadena llena de HTML sucio y devolverá una cadena (a menos que se configure de otro modo) con HTML limpio. DOMPurify eliminará todo lo que contenga HTML peligroso y, de este modo, prevendrá ataques XSS y otras cosas desagradables. También es increíblemente rápido. Usamos las tecnologías que el navegador proporciona y las convertimos en un filtro XSS. Cuanto más rápido sea tu navegador, más rápido será DOMPurify.

¿Cómo lo uso?

Es fácil. Solo incluye DOMPurify en tu sitio web.

Usando la versión sin minificar (con source-map disponible)```html

### Usando la versión de producción minificada y probada (source-map disponible)```html
<script type="text/javascript" src="dist/purify.min.js"></script>

Después puedes sanitizar cadenas ejecutando el siguiente código:```js const clean = DOMPurify.sanitize(dirty);

O quizá esto, si te encanta trabajar con Angular o similares:```js
import DOMPurify from 'dompurify';

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

El HTML resultante puede escribirse en un elemento del DOM mediante innerHTML o en el DOM usando document.write(). Eso depende completamente de ti. Ten en cuenta que, por defecto, permitimos HTML, SVG y MathML. Si solo necesitas HTML, que podría ser un caso de uso muy común, también puedes configurarlo fácilmente:```js const clean = DOMPurify.sanitize(dirty, { USE_PROFILES: { html: true } });

### ¿Hay algún riesgo de dispararse en el pie?

Bueno, ten en cuenta que si _primero_ sanitizas el HTML y luego lo modificas _después_, podrías fácilmente **anular los efectos de la sanitización**. Si pasas el marcado sanitizado a otra librería _después_ de la sanitización, asegúrate de que esa librería no manipule el HTML por su cuenta. Consulta los [Objetivos de Seguridad y el Modelo de Amenazas](https://github.com/cure53/DOMPurify/wiki/Security-Goals-&-Threat-Model) para conocer recetas de uso seguro y las etiquetas/atributos que vale la pena reconsiderar, y las [Clases de Ataque e Historial de Bypass](https://github.com/cure53/DOMPurify/wiki/Attack-Classes-&-Bypass-History) para entender por qué el post-procesamiento y el cambio del contexto del marcado anulan la sanitización.

### Vale, tiene sentido, sigamos adelante

Después de sanitizar tu marcado, también puedes echar un vistazo a la propiedad `DOMPurify.removed` y averiguar qué elementos y atributos fueron descartados. Por favor, **no uses** esta propiedad para tomar decisiones críticas de seguridad. Es solo una pequeña ayuda para mentes curiosas.

### Ejecutar DOMPurify en el servidor

DOMPurify técnicamente también funciona en el lado del servidor con Node.js. Nuestro soporte busca seguir el [ciclo de versiones de Node.js](https://nodejs.org/en/about/previous-releases).

Categorías