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

Baseline 2022
Newly available

Since December 2022, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Die HTTP Content-Security-Policy (CSP) style-src-attr Anweisung spezifiziert gültige Quellen für Inline-Stile, die auf einzelne DOM-Elemente angewendet werden.

Die Anweisung legt keine gültigen Quellen für <style>-Elemente und <link>-Elemente mit rel="stylesheet" fest. Diese werden mit style-src-elem festgelegt (und gültige Quellen für alle Stile können mit style-src festgelegt werden).

CSP-Version 3
Anweisungstyp Fetch directive
default-src Rückfall

Ja. Wenn diese Anweisung fehlt, wird der User-Agent die style-src-Anweisung suchen, und wenn beide fehlen, auf die default-src-Anweisung zurückfallen.

Syntax

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

Diese Anweisung kann einen der folgenden Werte haben:

'none'

Keine Ressourcen dieses Typs dürfen geladen werden. Die einfachen Anführungszeichen sind obligatorisch.

<source-expression-list>

Eine durch Leerzeichen getrennte Liste von source expression-Werten. Ressourcen dieses Typs dürfen geladen werden, wenn sie mit einem der angegebenen Quellenausdrücke übereinstimmen. Für diese Anweisung sind die folgenden Quellenausdrücke anwendbar:

style-src-attr kann in Verbindung mit style-src verwendet werden:

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

Beispiele

Verletzungsfälle

Angesichts dieses CSP-Headers:

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

…wird der unten angewendete Inline-Stil nicht angewendet:

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

Die Richtlinie würde auch alle Stile blockieren, die in JavaScript durch direktes Setzen des style-Attributs oder durch Setzen von cssText angewendet werden:

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

Stileigenschaften, die direkt auf der style-Eigenschaft des Elements gesetzt werden, werden nicht blockiert, was es Nutzern ermöglicht, Stile sicher über JavaScript zu manipulieren:

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

Beachten Sie, dass die Verwendung von JavaScript unabhängig mit der script-src CSP-Anweisung blockiert werden kann.

Spezifikationen

Specification
Content Security Policy Level 3
# directive-style-src-attr

Browser-Kompatibilität

Siehe auch