CSP: script-src-attr
HTTP の Content-Security-Policy
(CSP) における script-src-attr
ディレクティブは、JavaScript でインラインイベントハンドラーを指定する際に、有効なソースを指定します。
このディレクティブは onclick
のようなインラインスクリプトイベントハンドラーに対してのみ、有効なソースを指定します。
<script>
要素に直接読み込まれた URL や XSLT スタイルシートなど、スクリプト実行のきっかけとなる他の JavaScript ソースには適用されません。
(有益なソースは script-src
を使用してすべての JavaScript スクリプトソースに対して指定することも、 script-src-elem
を使用して <script>
要素に対してのみ指定することも可能です。)
CSP バージョン | 3 |
---|---|
ディレクティブ種別 | フェッチディレクティブ |
default-src による代替 |
あり。
このディレクティブがない場合、ユーザーエージェントは script-src ディレクティブを探し、両方ともない場合は、 default-src ディレクティブで代替します。
|
構文
script-src-attr
ポリシーでは、1 つまたは複数のソースを許可することができます。
Content-Security-Policy: script-src-attr <source>;
Content-Security-Policy: script-src-attr <source> <source>;
script-src-attr
は script-src
と一緒に使用することができ、インラインハンドラーのチェックのために、このディレクティブを上書きすることができます。
Content-Security-Policy: script-src <source>;
Content-Security-Policy: script-src-attr <source>;
ソース
<source>
は、 CSP ソース値にあるいずれかの値を取ることができます。
なお、この同じ値のセットはすべてのフェッチディレクティブ(と他の多くのディレクティブ)で使用できます。
例
違反の場合
この CSP ヘッダーがあったとします。
Content-Security-Policy: script-src-attr 'none'
…実行すると、以下のインラインイベントハンドラーはブロックされ、読み込まれたり実行されたりしません。
<button id="btn" onclick="doSomething()"></button>
一般に、インラインイベントハンドラーは addEventListener
呼び出しに置き換える必要があることに注意してください。
document.getElementById("btn").addEventListener("click", doSomething);
仕様書
Specification |
---|
Content Security Policy Level 3 # directive-script-src-attr |
ブラウザーの互換性
BCD tables only load in the browser