CSP: trusted-types
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
La directive HTTP Content-Security-Policy
(CSP) trusted-types
Expérimental
informe l'agent utilisateur qu'il faut restreindre la création de règles Trusted Types (fonctions qui créent des valeurs typées non falsifiables, dans le but de les passer au puits XSS du DOM au lieu de chaines de caractères).
Conjointement à la directive require-trusted-types-for
, cette directive permet aux auteurs de définir des règles empêchant d'injecter des données dans le DOM et donc de réduire la fenêtre de tir pour les attaques XSS sur le DOM à quelques pans isolés de la base de code d'une application, facilitant donc son contrôle et sa relecture. Cette directive déclare une liste de permissions de noms de règles de Trusted Types créée avec TrustedTypes.createPolicy
à partir de l'API Trusted Types.
Syntaxe
Content-Security-Policy: trusted-types; Content-Security-Policy: trusted-types 'none'; Content-Security-Policy: trusted-types <policyName>; Content-Security-Policy: trusted-types <policyName> <policyName> 'allow-duplicates';
- <nomRègle>
-
Un nom de règle est composé de caractères alphanumériques ou d'un ou plusieurs "
-#=_/@.%
". Une astérisque (*
) comme nom de règle informe l'agent utilisateur d'autoriser tout nom de règle unique (quoique la valeur'allow-duplicates'
pourrait permettre d'être plus laxiste à l'avenir). 'none'
-
Interdit la création de toute règle de Trusted Type (identique au fait de ne renseigner aucun nom de règle).
'allow-duplicates'
-
Autorise la création de règles dont le nom a déjà été utilisé.
Exemples
Soit l'en-tête CSP :
Content-Security-Policy: trusted-types foo bar 'allow-duplicates';
Ce code génèrera une erreur car une des règles créées a un nom non autorisé :
if (typeof trustedTypes !== "undefined") {
const policyFoo = trustedTypes.createPolicy("foo", {});
const policyFoo2 = trustedTypes.createPolicy("foo", {});
const policyBaz = trustedTypes.createPolicy("baz", {}); // Throws and dispatches a SecurityPolicyViolationEvent.
}
Prothèse d'émulation
Un prothèse d'émulation pour les Trusted Types est disponible sur Github.
Spécifications
Specification |
---|
Trusted Types # trusted-types-csp-directive |
Compatibilité des navigateurs
BCD tables only load in the browser
Voir aussi
Content-Security-Policy
- Cross-Site Scripting (XSS)
- Prevent DOM-based cross-site scripting vulnerabilities with Trusted Types
- Trusted Types with DOMPurify XSS sanitizer