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 ディレクティブで代替します。

構文

script-src-elem ポリシーには、 1 つまたは複数のソースが許可されています。

http
Content-Security-Policy: script-src-elem <source>;
Content-Security-Policy: script-src-elem <source> <source>;

script-src-elemscript-src との組み合わせで使用することができます。

http
Content-Security-Policy: script-src <source>;
Content-Security-Policy: script-src-elem <source>;

ソース

<source> は、 CSP ソース値にあるいずれかの値を取ることができます。

なお、この同じ値のセットはすべてのフェッチディレクティブ(と 他の多くのディレクティブ)で使用できます。

違反の場合

この CSP ヘッダーがあったとします。

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

…以下のスクリプトがブロックされ、読み込まれず、実行されません。

html
<script src="https://not-example.com/js/library.js"></script>

仕様書

Specification
Content Security Policy Level 3
# directive-script-src-elem

ブラウザーの互換性

BCD tables only load in the browser

関連情報