CSP: style-src-attr
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2022年12月.
HTTP の Content-Security-Policy (CSP) における style-src-attr ディレクティブは、個々の DOM 要素に適用されるインラインスタイルのための有効なソースを指定します。
このディレクティブは、<style> 要素、および rel="stylesheet" を持つ <link> 要素に有効なソースを設定しません。
これらは、style-src-elem を使用して設定されます(そして、すべてのスタイルのための有効なソースは、style-src で設定することができます)。
| CSP バージョン | 3 |
|---|---|
| ディレクティブ種別 | フェッチディレクティブ |
| フォールバック |
あり。
このディレクティブがない場合、ユーザーエージェントは |
構文
Content-Security-Policy: style-src-attr 'none';
Content-Security-Policy: style-src-attr <source-expression-list>;
このディレクティブは、次のいずれかの値を指定することができます。
'none'-
この種類のリソースは読み込まれません。単一引用符は必須です。
<source-expression-list>-
ソース表現の値を空白で区切ったリストです。この種類のリソースは、指定されたソース表現のいずれかと一致した場合に読み込まれます。このディレクティブでは、以下のソース表現の値が適用できます。
style-src-attr は style-src との組み合わせで使用することができます。
Content-Security-Policy: style-src <source>;
Content-Security-Policy: style-src-attr <source>;
例
>違反している場合
この CSP ヘッダーがあったとします。
Content-Security-Policy: style-src-attr 'none'
…要素へ適用されたインラインスタイルは適用されません。
<div style="display:none">Foo</div>
このポリシーは、style 属性を直接設定したり、cssText を設定することによって JavaScript で適用されるスタイルもブロックすることになります。
document.querySelector("div").setAttribute("style", "display:none;");
document.querySelector("div").style.cssText = "display:none;";
要素の style プロパティに直接設定されたスタイルプロパティはブロックされないので、ユーザーは JavaScript で安全にスタイルを操作できるようになります。
document.querySelector("div").style.display = "none";
JavaScript を使用すると、CSP の script-src ディレクティブを使用して独自にブロックされる可能性があることに注意してください。
仕様書
| Specification |
|---|
| Content Security Policy Level 3> # directive-style-src-attr> |
ブラウザーの互換性
Loading…