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 style-src-Direktive suchen, und wenn beide fehlen, fällt er auf die default-src-Direktive zurück.

Syntax

http
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:

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

Beispiele

Verletzungsfälle

Angenommen, dieser CSP-Header:

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

… der Inline-Style, der auf das untenstehende Element angewendet wird, wird nicht angewendet:

html
<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:

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 Benutzern ermöglicht, Stile sicher über JavaScript zu manipulieren:

js
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

Siehe auch