CSP: style-src-elem
HTTP の Content-Security-Policy
(CSP) における style-src-elem
ディレクティブは、スタイルシート <style>
要素と rel="stylesheet"
を持つ <link>
要素の有効なソースを指定します。
これらは style-src-attr
を使用して設定されます(また、すべてのスタイルの有効なソースは style-src
で設定することができます)。
CSP バージョン | 3 |
---|---|
ディレクティブ種別 | フェッチディレクティブ |
default-src の代替 |
あり。
このディレクティブがない場合、ユーザーエージェントは |
構文
http
Content-Security-Policy: style-src-elem 'none';
Content-Security-Policy: style-src-elem <source-expression-list>;
このディレクティブは、次のいずれかの値を指定することができます。
'none'
-
この種類のリソースは読み込まれません。単一引用符は必須です。
<source-expression-list>
-
ソース表現の値を空白で区切ったリストです。この種類のリソースは、指定されたソース表現のいずれかと一致した場合に読み込まれます。このディレクティブでは、フェッチディレクティブの構文に掲載されているソース表現のうち、
'unsafe-hashes'
以外のいずれかが適用できます。
style-src-elem
は style-src
との組み合わせで使用できます。
http
Content-Security-Policy: style-src <source>;
Content-Security-Policy: style-src-elem <source>;
例
違反している場合
この CSP ヘッダーがあったとします。
http
Content-Security-Policy: style-src-elem https://example.com/
…このスタイルシートはブロックされ、読み込まれません。
html
<link href="https://not-example.com/styles/main.css" rel="stylesheet" />
<style>
#inline-style {
background: red;
}
</style>
<style>
@import url("https://not-example.com/styles/print.css") print;
</style>
…同様に、Link
ヘッダーを使用して読み込まれたスタイル設定です。
http
Link: <https://not-example.com/styles/stylesheet.css>;rel=stylesheet
仕様書
Specification |
---|
Content Security Policy Level 3 # directive-style-src-elem |