Content-Security-Policy : directive require-trusted-types-for
Baseline
2026
Nouvellement disponible
Depuis February 2026, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
La directive HTTP Content-Security-Policy (CSP) require-trusted-types-for informe l'agent utilisateur de contrôler les données passées au puits de fonctions XSS du DOM, tel que le mutateur Element.innerHTML.
Lorsqu'elles sont utilisées, ces fonctions n'acceptent que des valeurs typées qui ne peuvent pas être falsifiées, créées par les politiques de type de confiance, et rejettent les chaînes de caractères.
En combinaison avec la directive trusted-types, qui protège la création de politiques de type de confiance, cela permet aux auteur·ice·s de définir des règles pour l'écriture de valeurs dans le DOM, réduisant ainsi la surface d'attaque XSS du DOM à de petites parties isolées du code de l'application web, facilitant leur surveillance et leur révision.
Syntaxe
Content-Security-Policy: require-trusted-types-for 'script';
'script'-
Interdit l'usage de chaîne de caractères avec les fonctions du puits d'injection XSS du DOM, et requiert que les types correspondant soient créés par des règles de type de confiance.
Exemples
// Content-Security-Policy: require-trusted-types-for 'script'; trusted-types foo;
const entreeDeAttaquant = '<svg onload="alert(/cross-site-scripting/)" />';
const el = document.createElement("div");
if (typeof trustedTypes !== "undefined") {
// Crée une politique qui peut créer des valeurs TrustedHTML
// après avoir assaini les chaînes d'entrée avec la bibliothèque DOMPurify.
const assainisseur = trustedTypes.createPolicy("foo", {
createHTML: (input) => DOMPurify.sanitize(input),
});
el.innerHTML = assainisseur.createHTML(entreeDeAttaquant); // Met la valeur assainie dans le DOM.
el.innerHTML = entreeDeAttaquant; // Rejette une valeur de type chaîne ; lance une TypeError.
}
Spécifications
| Spécification |
|---|
| Trusted Types> # require-trusted-types-for-csp-directive> |