Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Content-Security-Policy : directive style-src-attr

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis décembre 2022.

La directive HTTP Content-Security-Policy (CSP) style-src-attr définit les sources valides pour des feuilles de styles appliquées à des éléments individuels du DOM par l'attribut style.

Cette directive ne définit pas les sources valides pour les éléments HTML <style> et les éléments <link> avec rel="stylesheet". Ces sources sont définies en utilisant style-src-elem (et les sources valides pour tous les styles peuvent être définies avec style-src).

Version de CSP 3
Type de directive Directive de récupération
Solution de repli default-src Oui, si cette directive est absente, l'agent utilisateur consultera la directive style-src, qui a pour valeur par défaut celle de la directive default-src.

Syntaxe

http
Content-Security-Policy: style-src-attr 'none';
Content-Security-Policy: style-src-attr <source-expression-list>;

Cette directive peut avoir l'une des valeurs suivantes :

'none'

Aucune ressource de ce type ne peut être chargée. Les guillemets simples sont obligatoires.

<source-expression-list>

Une liste de valeurs d'expressions de source séparées par des espaces. Les ressources de ce type peuvent être chargées si elles correspondent à l'une des expressions de source données. Pour cette directive, les valeurs d'expression de source suivantes sont applicables :

style-src-attr peut être utilisé en conjonction avec style-src:

http
Content-Security-Policy: style-src <source>;
Content-Security-Policy: style-src-attr <source>;

Exemples

Cas de violation

Soit cet en-tête CSP :

http
Content-Security-Policy: style-src-attr 'none'

…le style embarqué appliqué à l'élément ci-dessous ne sera pas appliqué :

html
<div style="display: inline">Foo</div>

La politique bloquera également tous les styles appliqués en JavaScript en définissant directement l'attribut style, ou en définissant cssText :

js
document.querySelector("div").setAttribute("style", "display: inline");
document.querySelector("div").style.cssText = "display: inline";

Les propriétés de style définies directement sur la propriété style de l'élément ne seront pas bloquées, permettant aux utilisateur·ice·s de manipuler sainement les styles avec JavaScript :

js
document.querySelector("div").style.display = "inline";

Notez que l'utilisation de JavaScript peut être bloquée indépendamment en utilisant la directive CSP script-src.

Spécifications

Spécification
Content Security Policy Level 3
# directive-style-src-attr

Compatibilité des navigateurs

Voir aussi