CSP アナライザー
Content-Security-Policy ヘッダー値を貼り付けると、各ディレクティブが平易な言葉で解説され、リスクが重大度別にフラグ表示されます — すべてブラウザ内で。
CSP アナライザーは Content-Security-Policy の解析と採点をすべてブラウザ内で行います。貼り付けたヘッダー値は端末から離れず、ArrayKit には何もアップロードされません。
CSP ヘッダージェネレーターを開く
CSP アナライザー について
CSP アナライザーは、Content-Security-Policy ヘッダー値を受け取り、ディレクティブごとの表に分解して、各ディレクティブが何を制御するかを平易な言葉で解説します。次に、CSP をひそかに無力化する弱点についてポリシーを監査します: スクリプトソース内の 'unsafe-inline' と 'unsafe-eval'、素の '*' ワイルドカード、安全でない http: オリジン、過度に広い data: スキーム、そして default-src・object-src 'none'・frame-ancestors・base-uri といった不足している強化策です。すべての指摘には重大度が付くため、ポリシーが堅牢か緩いかを一目で確認できます。サイトを強化するとき、フレームワークが生成したポリシーをレビューするとき、report-only の CSP がなぜインラインスクリプトを許すのかをデバッグするときに便利です。すべては端末上で解析・採点され、貼り付けたヘッダーがアップロードされることはありません。
機能
- 任意の Content-Security-Policy 値をクリーンなディレクティブごとの表に解析
- 各ディレクティブ(script-src・frame-ancestors・base-uri…)を平易に解説
- スクリプトソース内の 'unsafe-inline' と 'unsafe-eval' を高リスクとしてフラグ
- 素の '*' ワイルドカードと安全でない http: ソースを検出
- 不足している default-src・object-src 'none'・frame-ancestors・base-uri を警告
- すべての指摘に重大度(高 / 中 / 低 / OK)を割り当て
- 'Content-Security-Policy:' ヘッダー名の有無にかかわらず入力を受け付け
- すべてブラウザ内で動作 — 貼り付けたポリシーは端末から離れない
CSP アナライザー の使い方
- サーバー設定またはレスポンスヘッダーから Content-Security-Policy ヘッダー値をコピーします
- アナライザーに貼り付けます(先頭のヘッダー名は任意)
- ディレクティブごとの表を読んで、各ディレクティブが何を許すか確認します
- 指摘を重大な順に処理し、フラグされたディレクティブを引き締めます
例
入力
default-src 'self'; script-src 'self' 'unsafe-inline'; object-src 'none'
出力
HIGH script-src 'unsafe-inline' permits inline scripts
MED frame-ancestors missing — page can be framed (clickjacking)
OK object-src 'none' blocks plugins (recommended)
アナライザーは unsafe-inline を高とフラグし、不足している frame-ancestors を指摘し、object-src 'none' を確認します。
よくあるエラーとトラブルシューティング
- ポリシーに script-src 'self' があるのにインラインスクリプトがまだ動く。 — script-src(またはそのフォールバックとしての default-src)に 'unsafe-inline' がないか確認してください。それを削除し、nonce やハッシュに切り替えて、あなたのインラインブロックだけが実行されるようにします。
- アナライザーが default-src が不足していると警告する。 — default-src はほとんどの fetch ディレクティブのフォールバックです。それがないと、明示的にリストしていないディレクティブは制限されません — default-src 'self' または 'none' を追加してください。
- X-Frame-Options を設定しているのに frame-ancestors がフラグされる。 — モダンブラウザは X-Frame-Options より frame-ancestors を優先します。frame-ancestors 'self' または 'none' を CSP に追加して、フレーミングをポリシーで制御してください。
- ソース内のワイルドカード '*' がリスクとして報告される。 — '*' は任意のオリジンからのコンテンツを許し、そのディレクティブの意味を失わせます。実際に読み込む具体的な https:// ホストに置き換えてください。
よくある質問
- CSP アナライザーは何をチェックしますか?
- 各ディレクティブを解析し、何を制御するかを解説し、よくある弱点をフラグします: スクリプトソース内の 'unsafe-inline' と 'unsafe-eval'、素の '*' ワイルドカード、安全でない http: オリジン、過度に広い data: スキーム、そして不足している default-src・object-src 'none'・frame-ancestors・base-uri です。
- 'unsafe-inline' が高リスクとしてフラグされるのはなぜですか?
- 'unsafe-inline' はインラインの <script> ブロックとイベントハンドラー属性の実行を許し、それはまさに CSP が阻止すべきインジェクションの経路です。実質的に script-src を無効化するため、アナライザーは高重大度の指摘として扱い、代わりに nonce やハッシュを提案します。
- 'Content-Security-Policy:' ヘッダー名を含める必要がありますか?
- いいえ。完全なヘッダー行、またはポリシー値だけのどちらでも貼り付けられます。アナライザーは解析前に先頭の 'Content-Security-Policy:' または 'Content-Security-Policy-Report-Only:' プレフィックスを自動で取り除きます。
- アナライザーが frame-ancestors の不足を警告するのはなぜですか?
- frame-ancestors がないと、どのサイトもあなたのページを iframe に埋め込め、クリックジャッキングが可能になります。frame-ancestors は X-Frame-Options のモダンな代替なので、アナライザーは frame-ancestors 'self' または 'none' の追加を推奨します。
- これはポリシーが構文的に完璧かを検証しますか?
- 厳密な文法ではなくセキュリティ姿勢に焦点を当てます。ブラウザが受け付ける一般的な形 — セミコロン区切りのディレクティブとスペース区切りのソース — を処理し、空白の粗探しではなく、危険なソースと不足している強化策を指摘します。
- 貼り付けた CSP ヘッダーはどこかに送られますか?
- いいえ。CSP アナライザーはポリシーの解析と採点をすべてブラウザ内で行います。貼り付けたヘッダー値は端末に留まり、ArrayKit にアップロードされることはありません。
関連ツール
すべての ArrayKit ツール