Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Content-Security-Policy: style-src-attr-Direktive
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Dezember 2022.
Die HTTP-Content-Security-Policy (CSP) style-src-attr-Direktive 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 mithilfe von style-src-elem festgelegt (und gültige Quellen für alle Stile können mit style-src festgelegt werden).
| CSP-Version | 3 |
|---|---|
| Direktivtyp | 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 source expression-Werten. Ressourcen dieses Typs können geladen werden, wenn sie mit einem der angegebenen source expressions übereinstimmen. Für diese Direktive sind die folgenden source expression-Werte anwendbar:
style-src-attr kann zusammen 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 ist gesetzt:
Content-Security-Policy: style-src-attr 'none'
...wird der Inline-Style, der auf das untenstehende Element angewendet wird, nicht angewendet:
<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:
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, sodass Benutzer sicher Stile über JavaScript manipulieren können:
document.querySelector("div").style.display = "none";
Beachten Sie, dass die Verwendung von JavaScript möglicherweise unabhängig mithilfe der script-src-CSP-Direktive blockiert sein könnte.
Spezifikationen
| Specification |
|---|
| Content Security Policy Level 3> # directive-style-src-attr> |
Browser-Kompatibilität
Loading...