CSP: script-src-attr
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2022年12月.
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 ディレクティブで代替します。
|
構文
Content-Security-Policy: script-src-attr 'none';
Content-Security-Policy: script-src-attr <source-expression-list>;
このディレクティブは、次のいずれかの値を指定することができます。
'none'-
この種類のリソースは読み込まれません。単一引用符は必須です。
<source-expression-list>-
ソース表現の値を空白で区切ったリストです。この種類のリソースは、指定されたソース表現のいずれかと一致した場合に読み込まれます。このディレクティブでは、以下のソース表現の値が適用できます。
script-src-attr は script-src と組み合わせて使用することができ、インラインハンドラーを調べるときにはそのディレクティブを上書きします。
Content-Security-Policy: script-src <source>;
Content-Security-Policy: script-src-attr <source>;
例
>違反の場合
この 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> |
ブラウザーの互換性
Loading…