CSP: style-src-attr
Die HTTP-Direktive Content-Security-Policy
(CSP) style-src-attr
gibt gültige Quellen für Inline-Styles an, die auf einzelne DOM-Elemente angewendet werden.
Die Direktive 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 |
---|---|
Direktiventyp | Fetch-Direktive |
default-src Fallback |
Ja.
Wenn diese Direktive fehlt, wird der Benutzeragent nach der |
Syntax
Content-Security-Policy: style-src-attr 'none';
Content-Security-Policy: style-src-attr <source-expression-list>;
Diese Direktive 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 Quell-Ausdruck-Werten. Ressourcen dieses Typs dürfen geladen werden, wenn sie einem der angegebenen Quellausdrücke entsprechen.
Quellausdrücke werden als Schlüsselwortwerte oder URL-Muster angegeben: Die Syntax für jeden Quellausdruck ist in CSP Source Values beschrieben.
style-src-attr
kann in Verbindung mit style-src
verwendet werden:
Content-Security-Policy: style-src <source>;
Content-Security-Policy: style-src-attr <source>;
Beispiele
Verletzungsfälle
Angenommen, dieser CSP-Header:
Content-Security-Policy: style-src-attr 'none'
… der Inline-Style, der auf das untenstehende Element angewendet wird, wird nicht angewendet:
<div style="display:none">Foo</div>
Die Richtlinie würde auch alle Stile blockieren, die in JavaScript angewendet werden, indem das style
-Attribut direkt gesetzt wird, oder durch Setzen von cssText
:
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 Benutzern ermöglicht, Stile sicher über JavaScript zu manipulieren:
document.querySelector("div").style.display = "none";
Es ist zu beachten, dass die Verwendung von JavaScript möglicherweise unabhängig mit der script-src
CSP-Direktive blockiert werden könnte.
Spezifikationen
Specification |
---|
Content Security Policy Level 3 # directive-style-src-attr |
Browser-Kompatibilität
BCD tables only load in the browser