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

Trusted Types

Vérifié parCybersecurity entrepreneur & security researcher

Qu'est-ce que Trusted Types ?

Trusted TypesAPI navigateur et directive CSP qui préviennent le XSS basé sur le DOM en exigeant que les sinks DOM dangereux reçoivent des valeurs typées validées par une politique plutôt que des chaînes brutes.


Trusted Types est une défense conçue par Google et standardisée sous forme de W3C Working Draft pour éliminer le XSS basé sur le DOM à sa racine. Activé via les directives CSP require-trusted-types-for 'script' et trusted-types, le navigateur refuse d'exécuter les sinks d'injection — innerHTML, outerHTML, document.write, eval, setTimeout avec une chaîne, script.src, iframe.srcdoc et des dizaines d'autres — dès qu'ils reçoivent une simple chaîne de caractères. Le code doit à la place transmettre des objets typés (TrustedHTML, TrustedScript, TrustedScriptURL) forgés par des politiques nommées et auditées via trustedTypes.createPolicy(...). Cela ramène les milliers de sinks dangereux d'une base de code à une poignée de fonctions de politique révisables.

Le mécanisme est présent dans les navigateurs Chromium (Chrome et Edge depuis la v83, mai 2020) ; les implémentations Firefox et Safari restent en cours, il se déploie donc en défense en profondeur aux côtés d'une CSP stricte, et non comme unique contrôle. Une politique spéciale nommée default intercepte toute chaîne qui parviendrait à passer, permettant aux équipes de la faire transiter par un assainisseur — DOMPurify retourne nativement du TrustedHTML, si bien que DOMPurify.sanitize(html, {RETURN_TRUSTED_TYPE: true}) satisfait l'enforcement. Google attribue à Trusted Types d'avoir réduit le XSS DOM à quasi zéro dans des produits comme Search et Photos, la majorité de ses bogues XSS historiques étant côté client. Déployez d'abord en mode Content-Security-Policy-Report-Only afin de détecter les violations avant de passer en enforcement.

flowchart TD
  A[Chaîne non fiable<br/>location.hash, postMessage] --> B{Assignée à un<br/>sink DOM ? ex. innerHTML}
  B -->|Trusted Types en enforcement| C{La valeur est-elle un<br/>objet TrustedHTML ?}
  C -->|Oui, issu d'une politique auditée| D[Le sink s'exécute sans danger]
  C -->|Non, chaîne brute| E[Le navigateur lève<br/>TypeError + rapport CSP]
  E --> F[Politique default<br/>DOMPurify assainit]
  F --> C
  B -->|Sans Trusted Types| G[Le sink exécute la chaîne brute<br/>XSS basé sur le DOM]

Exemples

  1. 01

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

  2. 02

    Remplacer element.innerHTML = userInput par element.innerHTML = policy.createHTML(userInput).

Questions fréquentes

Qu'est-ce que Trusted Types ?

API navigateur et directive CSP qui préviennent le XSS basé sur le DOM en exigeant que les sinks DOM dangereux reçoivent des valeurs typées validées par une politique plutôt que des chaînes brutes. Cette notion relève de la catégorie Sécurité applicative en cybersécurité.

Que signifie Trusted Types ?

API navigateur et directive CSP qui préviennent le XSS basé sur le DOM en exigeant que les sinks DOM dangereux reçoivent des valeurs typées validées par une politique plutôt que des chaînes brutes.

Comment se défendre contre Trusted Types ?

Les défenses contre Trusted Types combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.

Termes liés

Voir aussi