Content-Security-Policy: style-src-Direktive

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2016.

Die HTTP-Content-Security-Policy (CSP) style-src-Direktive gibt gültige Quellen für Stylesheets an.

CSP-Version 1
Direktivtyp Fetch-Direktive
default-src Fallback Ja. Wenn diese Direktive fehlt, sucht der Benutzeragent nach der default-src-Direktive.

Syntax

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

Diese Direktive kann einen der folgenden Werte haben:

'none'

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

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

Beachten Sie, dass die Spezifikation auch 'unsafe-eval' als gültigen Quellenausdruckswert enthält, um die CSSOM-Methoden zu erlauben, die CSS-Strings parsen und einfügen, einschließlich der insertRule()-Methoden und cssText-Setter auf verschiedenen Schnittstellen, wie CSSStyleSheet.insertRule() und CSSStyleDeclaration.cssText. Derzeit blockiert jedoch kein Browser diese Methoden, sodass es nicht notwendig ist, unsafe-eval anzuwenden.

Beispiele

Verletzungsfälle

Gegeben ist dieser CSP-Header:

http
Content-Security-Policy: style-src https://example.com/

die folgenden Stylesheets werden blockiert und nicht geladen:

html





ebenso wie Styles, die über den Link-Header geladen werden:

http
Link: ;rel=stylesheet

Inline-Style-Attribute werden ebenfalls blockiert:

html
Foo

Genauso wie Styles, die in JavaScript durch direktes Setzen des style-Attributes angewendet werden, oder durch Setzen von cssText:

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

Stil-Eigenschaften, die direkt auf der style-Eigenschaft des Elements gesetzt werden, werden jedoch nicht blockiert und ermöglichen es Benutzern, Styles sicher über JavaScript zu manipulieren:

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

Diese Arten von Manipulationen können verhindert werden, indem JavaScript über die script-src CSP-Direktive disallowiert wird.

Unsichere Inline-Styles

Sie können eine Nonce-Quelle verwenden, um nur bestimmte Inline-Style-Blöcke zuzulassen. Sie müssen einen zufälligen Nonce-Wert generieren (unter Verwendung eines kryptografisch sicheren Zufalls-Token-Generators) und ihn in die Richtlinie aufnehmen. Es ist wichtig zu beachten, dass dieser Nonce-Wert dynamisch generiert werden muss, da er für jede HTTP-Anfrage eindeutig sein muss:

http
Content-Security-Policy: style-src 'nonce-2726c7f26c'

Sie müssen denselben Nonce auf dem