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

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
script-src-elem

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報