Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1307

Trusted Types

Revisado porCybersecurity entrepreneur & security researcher

¿Qué es Trusted Types?

Trusted TypesAPI del navegador y directiva CSP que previene el XSS basado en DOM exigiendo que los sumideros peligrosos del DOM reciban valores tipados y validados por una politica en lugar de cadenas en bruto.


Trusted Types es una defensa disenada por Google y estandarizada como Working Draft del W3C para eliminar de raiz el XSS basado en DOM. Cuando se habilita mediante las directivas CSP require-trusted-types-for 'script' y trusted-types, el navegador se niega a ejecutar los sumideros de inyeccion —innerHTML, outerHTML, document.write, eval, setTimeout con una cadena, script.src, iframe.srcdoc y docenas mas— siempre que reciban una cadena de texto plana. En su lugar, el codigo debe pasar objetos tipados (TrustedHTML, TrustedScript, TrustedScriptURL) generados por politicas nombradas y auditadas a traves de trustedTypes.createPolicy(...). Esto reduce los miles de sumideros inseguros de una base de codigo a un punado de funciones de politica revisables.

El mecanismo esta disponible en los navegadores basados en Chromium (Chrome y Edge desde la v83, mayo de 2020); las implementaciones de Firefox y Safari siguen en curso, por lo que se despliega como defensa en profundidad junto a una CSP estricta y no como control unico. Una politica especial llamada default intercepta cualquier cadena que se cuele, lo que permite a los equipos encaminarla a traves de un saneador: DOMPurify devuelve TrustedHTML de forma nativa, de modo que DOMPurify.sanitize(html, {RETURN_TRUSTED_TYPE: true}) satisface la aplicacion de la politica. Google atribuye a Trusted Types haber llevado el XSS de DOM practicamente a cero en productos como Search y Photos, ya que la mayoria de sus fallos historicos de XSS eran del lado del cliente. Despliegalo primero en modo Content-Security-Policy-Report-Only para detectar las infracciones antes de aplicarlo.

flowchart TD
  A[Cadena no confiable<br/>location.hash, postMessage] --> B{Asignada a un<br/>sumidero del DOM? p. ej. innerHTML}
  B -->|Trusted Types aplicado| C{El valor es un<br/>objeto TrustedHTML?}
  C -->|Si, de politica auditada| D[El sumidero se ejecuta de forma segura]
  C -->|No, cadena en bruto| E[El navegador lanza<br/>TypeError + informe CSP]
  E --> F[politica default<br/>DOMPurify sanea]
  F --> C
  B -->|Sin Trusted Types| G[El sumidero ejecuta la cadena en bruto<br/>XSS basado en DOM]

Ejemplos

  1. 01

    Content-Security-Policy: require-trusted-types-for 'script'; trusted-types default;

  2. 02

    Sustituir element.innerHTML = userInput por element.innerHTML = policy.createHTML(userInput).

Preguntas frecuentes

¿Qué es Trusted Types?

API del navegador y directiva CSP que previene el XSS basado en DOM exigiendo que los sumideros peligrosos del DOM reciban valores tipados y validados por una politica en lugar de cadenas en bruto. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.

¿Qué significa Trusted Types?

API del navegador y directiva CSP que previene el XSS basado en DOM exigiendo que los sumideros peligrosos del DOM reciban valores tipados y validados por una politica en lugar de cadenas en bruto.

¿Cómo defenderse de Trusted Types?

Las defensas contra Trusted Types combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.

Términos relacionados

Véase también