CSP: script-src-elem
HTTP の Content-Security-Policy
(CSP) における script-src-elem
ディレクティブは、 JavaScript の <script>
要素の有効なソースを指定します。
このディレクティブは <script>
要素(スクリプトリクエストとブロックの両方)の中で有効なソースのみを指定します。
インラインスクリプトイベントハンドラー (onclick
) や "unsafe-eval" チェックでゲートされたスクリプト実行メソッド、XSLT スタイルシートなど、スクリプトの実行のきっかけとなるような他の JavaScript ソースには適用されません。
(有効なソースは、 script-src
を使用してすべての JavaScript スクリプトソースに指定することも、 script-src-attr
を使用してインラインスクリプトハンドラーにのみ指定することも可能です。)
CSP バージョン | 3 |
---|---|
ディレクティブ種別 | フェッチディレクティブ |
default-src による代替 |
あり。
このディレクティブがない場合、ユーザーエージェントは script-src ディレクティブを探し、両方ともない場合は、 default-src ディレクティブで代替します。
|
構文
Content-Security-Policy: script-src-elem 'none';
Content-Security-Policy: script-src-elem <source-expression-list>;
このディレクティブは、次のいずれかの値を指定することができます。
'none'
-
この種類のリソースは読み込まれません。単一引用符は必須です。
<source-expression-list>
-
ソース表現の値を空白で区切ったリストです。この種類のリソースは、指定されたソース表現のいずれかと一致した場合に読み込まれます。このディレクティブでは、フェッチディレクティブの構文に掲載されているソース表現のうち、
'unsafe-hashes'
以外のいずれかが適用できます。
script-src-elem
は script-src
との組み合わせで使用することができます。
Content-Security-Policy: script-src <source>;
Content-Security-Policy: script-src-elem <source>;
例
違反の場合
この CSP ヘッダーがあったとします。
Content-Security-Policy: script-src-elem https://example.com/
…以下のスクリプトがブロックされ、読み込まれず、実行されません。
<script src="https://not-example.com/js/library.js"></script>
仕様書
Specification |
---|
Content Security Policy Level 3 # directive-script-src-elem |