Qué es Generador de politicas Trusted Types?
Trusted Types es una API de seguridad del navegador que previene XSS basado en DOM al requerir valores tipados en lugar de cadenas para sinks DOM peligrosos como innerHTML, eval() y script.src. Los desarrolladores usan trustedTypes.createPolicy() para definir reglas de sanitización que transforman o rechazan cadenas no confiables antes de que lleguen a los sinks de inyección. Combinado con una directiva Content-Security-Policy, Trusted Types cierra una clase importante de vulnerabilidades XSS al exigir que solo las operaciones explícitamente autorizadas puedan asignar valores a propiedades DOM de alto riesgo.
Respuesta rápida
Trusted Types previene XSS basado en DOM bloqueando cadenas que lleguen a sinks DOM peligrosos como innerHTML y eval(). Use trustedTypes.createPolicy() con operaciones createHTML/createScript/createScriptURL, luego aplique con Content-Security-Policy: require-trusted-types-for 'script'. Pruebe siempre primero en modo report-only usando Content-Security-Policy-Report-Only para evitar romper funcionalidades existentes.
Last updated: 2026-05-31
Limitaciones
- Trusted Types requiere soporte del navegador en Chrome 83+, Edge 83+ y Safari 17+. Firefox no soporta Trusted Types a partir de 2026. Las aplicaciones deben manejar Firefox correctamente sin protección Trusted Types proporcionando un comportamiento alternativo para navegadores no compatibles.
- Trusted Types no cubre todos los vectores XSS: protege los sinks de inyección DOM (innerHTML, outerHTML, insertAdjacentHTML, eval, document.write) pero no previene XSS a través de atributos URL (href, src), atributos de manejadores de eventos o vectores de inyección basados en CSS.
- Migrar aplicaciones grandes a Trusted Types requiere una refactorización significativa. Cada uso de innerHTML, insertAdjacentHTML, outerHTML y document.write debe envolverse en una política, lo que puede implicar cientos de cambios en una base de código heredada con manipulación DOM dinámica extensa.
Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub
Cómo usar esta herramienta
- Configure las operaciones permitidas (createHTML, createScript, createScriptURL) y decida cómo maneja cada operación la entrada: rechazo estricto (bloquear toda entrada no confiable), sanitización (pasar por una función sanitizadora) o paso directo para fuentes confiables.
- Elija el modo CSP: enforce (require-trusted-types-for 'script' en Content-Security-Policy) bloquea violaciones, o report-only (misma directiva en Content-Security-Policy-Report-Only) registra violaciones sin bloquear. Comience siempre con modo report-only durante la migración.
- Seleccione su plataforma de servidor (Nginx o Apache) para generar la configuración de cabecera CSP correspondiente que se integre con sus bloques de servidor o hosts virtuales existentes.
- Implemente el archivo JavaScript de la política y la configuración del servidor, luego pruebe su aplicación en modo report-only. Revise los informes de violación en la consola y ajuste las políticas hasta que no aparezcan violaciones, luego cambie al modo enforce.
Para qué puedes usarla
- Proteger una aplicación web con mucho contenido de XSS almacenado y reflejado al requerir que todos los puntos de inyección HTML pasen por una política Trusted Types con una función sanitizadora configurada.
- Migrar una aplicación heredada a Trusted Types implementándola primero en modo report-only, corrigiendo los informes de violación incrementalmente en toda la base de código, luego cambiando al modo enforce completo.
- Aplicar una política Trusted Types estricta en entornos con muchos scripts de terceros donde widgets y embebidos externos cargan contenido dinámico mediante innerHTML, asegurando que todo HTML inyectado pase por la política.