仕様と根拠
読み方
値を「;」でディレクティブに分け、各ディレクティブを空白で名前と値に分けます。名前は大文字・小文字を区別せず、同じ名前が重複したら最初のものだけが有効です(CSP3 2.2・2.2.1)。名前は CSP3 の 6 節にある読み込み・文書・ナビゲーション・レポートのディレクティブと照らして区分を表示します。
エラーにする条件
名前に英数字とハイフン以外が使われている(コンマ区切りの誤りなど)、'none' がほかのソース式と同居している、nonce・ハッシュの書式が正しくない、キーワードでもスキームでもホストでもないソース式がある、meta 要素で使えない report-uri・frame-ancestors・sandbox を書いている場合です(CSP3 2.2・2.3.1・3.3)。
警告・情報にする条件
ディレクティブの重複、値が空のソースリスト、引用符のないキーワード(self と書いたものはホスト名扱い)は警告です。スクリプトの 'unsafe-inline'・'unsafe-eval'・*・http:・data: は許可範囲が広いため注意の警告にします。default-src がない場合や非推奨の report-uri は情報です。
判定の範囲
この点検は構文とソース式の形、仕様に書かれた組み合わせを機械的に確かめるだけです。ポリシーが攻撃を防げるほど強いか、サイトが壊れないかは判定しません。指摘が 0 件でも安全とは限りません。nonce・ハッシュと unsafe-inline の併用規則など、仕様のうち確認していない部分は判定の対象外です。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| W3C Content Security Policy Level 3 | 2026年10月28日 | 2.2・2.2.1(構文・重複)・2.3.1(ソースリスト)・3.3(meta)・6(ディレクティブ)。Working Draft のため改訂される可能性あり。ページ後半は未確認 |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 確認した範囲は CSP Level 3 の構文・ソース式・ディレクティブ一覧までです。Trusted Types や upgrade-insecure-requests など別仕様のディレクティブは「判定しない」として表に出します。
- ポリシーの強さ(回避されにくさ)や、実際のページが壊れないかどうかは判定しません。ブラウザの実装差も扱いません。
- 複数のポリシー(ヘッダーが複数行)を合成したときの結果は計算しません。最初の 1 行だけを読みます。
- 実際にサイトへ接続してヘッダーを取得する機能はありません。貼り付けた文字だけを読みます。
ご利用にあたって
- 結果は仕様にもとづく構文の点検で、ポリシーの強さやサイトの安全性を保証するものではありません。「指摘なし」を「安全」と読み替えないでください。
- 本番の設定を変えるときは、まず Report-Only で挙動を確かめ、ページが壊れないことを検証環境で確認してください。