スクリプトの許可が広すぎる設定
script-src に 'unsafe-inline'、'unsafe-eval'、* の 3 つを並べた例です。どれも許可範囲を広げるため、それぞれ注意の警告として示し、default-src が無い点も情報で出します。
入力
Content-Security-Policy の値
script-src 'unsafe-inline' 'unsafe-eval' *
どこに書くポリシーか
Content-Security-Policy ヘッダー(強制)
結果
エラー 0 件・警告 3 件・情報 1 件
指摘(エラー・警告・情報)
- 警告 1 番目(script-src) script-src の 'unsafe-inline' はインラインのスクリプト(script 要素の中身・イベント属性)を許可します。CSP の主な目的の 1 つを弱めるため、可能なら nonce かハッシュに置き換えます(CSP3 2.3.1・6.1)。
- 警告 1 番目(script-src) script-src の 'unsafe-eval' は文字列からコードを実行する仕組みを許可します(CSP3 2.3.1)。使っているライブラリの対応を確認し、外せるなら外します。
- 警告 1 番目(script-src) script-src の * はすべてのホストからのスクリプトを許可します(スキームの制限を除く)。読み込み元を絞りたければホスト名で指定します。
- 情報 全体 default-src がありません。読み込み系ディレクティブ(6.1 節)は、指定のないものが default-src に戻る仕組みです。default-src がないと、指定していない種類の読み込みは制限されません(CSP3 6.1.3)。
| 読み取ったディレクティブ | 1 個 |
|---|---|
| 指摘の件数 | エラー 0 件・警告 3 件・情報 1 件 |
| 判定の範囲 | 構文・ディレクティブ名・ソース式の形・仕様に書かれた組み合わせだけを機械的に判定します。ポリシーの強さや安全性は判定せず、指摘がなくても安全とは限りません |
ディレクティブの一覧
| ディレクティブ | 値 | 区分 | 意味(CSP3 の節) |
|---|---|---|---|
| script-src | 'unsafe-inline' 'unsafe-eval' * | 読み込み | スクリプトの読み込み元と実行条件(CSP3 6.1) |
検算(この結果になる理由)
script-src の 'unsafe-inline'(インライン許可)、'unsafe-eval'(文字列からのコード実行許可)、*(すべてのホスト)の 3 つは構文上は正しいが許可が広く、警告 3 件です。default-src が無いため、指定外の種類が制限されない旨の情報が 1 件になります。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 確認した範囲は CSP Level 3 の構文・ソース式・ディレクティブ一覧までです。Trusted Types や upgrade-insecure-requests など別仕様のディレクティブは「判定しない」として表に出します。
- ポリシーの強さ(回避されにくさ)や、実際のページが壊れないかどうかは判定しません。ブラウザの実装差も扱いません。
- 複数のポリシー(ヘッダーが複数行)を合成したときの結果は計算しません。最初の 1 行だけを読みます。
- 実際にサイトへ接続してヘッダーを取得する機能はありません。貼り付けた文字だけを読みます。
ご利用にあたって
- 結果は仕様にもとづく構文の点検で、ポリシーの強さやサイトの安全性を保証するものではありません。「指摘なし」を「安全」と読み替えないでください。
- 本番の設定を変えるときは、まず Report-Only で挙動を確かめ、ページが壊れないことを検証環境で確認してください。