CSPアナライザー
任意のURLのContent-Security-Policy(CSP)およびContent-Security-Policy-Report-Onlyを分析します。リスクのあるディレクティブ(unsafe-inline、ワイルドカード)、不足しているnonce/hash戦略、非推奨パターンを検出し、XSS防御を強化するための実用的な推奨事項を提供します。リダイレクト、生ヘッダー検査、フィルタリング、検出結果、JSON/PDFエクスポートをサポート。
機能
- Content-Security-PolicyおよびContent-Security-Policy-Report-Onlyヘッダーの検出と説明。
- 一般的なCSPの落とし穴(unsafe-inline、unsafe-eval、広範なワイルドカード、過度に寛容なソース)をフラグ付け。
- nonceおよびhashベースの戦略による、より安全なスクリプト/スタイル実行のためのガイダンス。
- 実世界の強化で重要な、不足しているディレクティブ(例:frame-ancestors、object-src、base-uri)の特定。
- Report-Onlyの洞察:何がブロックされるか、本番環境を壊さずにCSPを展開する方法を理解。
- リダイレクト(最大10回)を追跡し、ブラウザが適用する最終応答ポリシーを分析。
- 正確なサーバー出力とデバッグのための生ヘッダービュー。
- 検出結果とスコアカード、「問題のみ」フィルタリング機能。
- 監査、チケット、セキュリティレビューのための分析結果をJSONまたはPDFにエクスポート。
- 非推奨ヘッダーの認識を含み、レガシーポリシーと移行ニーズを捕捉。
🧭 使い方 for csp-analyzer
分析するURLを入力
チェックしたいページのURL(多くの場合、ホームページやアプリシェル)を貼り付けます。
必要に応じてリダイレクト追跡を有効化
「リダイレクトを追跡」を有効にし、実際のCSPが返される最終的なHTTPS/www/ロケールの宛先にアナライザーが到達するようにします。
スコアカードと検出結果を確認
まず検出結果から重大なリスク(unsafe-inline、ワイルドカード、不足している制限)を特定し、どのディレクティブがスコアに影響を与えているかを理解します。
デバッグ時には生ヘッダーを検査
「生ヘッダーを表示」をオンにして、正確なヘッダー名と値(複数のCSPヘッダーが存在する場合やプロキシ/CDNが変更した場合に有用)を確認します。
セキュリティワークフローのためにレポートをエクスポート
自動化のためのJSON、またはセキュリティ監査やエンジニアリングチケットのためのPDFをダウンロードします。
技術仕様
リクエストモデル
このツールはURLヘッダー検査を実行し、CSPおよびreport-onlyポリシーを含むセキュリティヘッダー分析に焦点を当てています。
| 設定 | 動作 | デフォルト |
|---|---|---|
| リダイレクト追従 | リダイレクトチェーンを追跡し、最終URLが返す有効なポリシーを分析します | 有効 |
| 最大リダイレクト数 | ループを防ぐためのリダイレクト上限 | 10 |
| タイムアウト | リクエストのタイムアウト制限 | 15000 ms |
| ユーザーエージェント | リクエストのユーザーエージェントを識別します | Encode64Bot/1.0 (+https://encode64.com) |
| プライベートネットワーク | 安全性のため、プライベートネットワーク範囲へのアクセスをブロックします | 無効(プライベートネットワークは許可されていません) |
検査対象のCSPヘッダー
アナライザーは、強制ポリシーと非強制ポリシーの両方をチェックし、読みやすい形式で表示します。
| ヘッダー | 意味 |
|---|---|
| Content-Security-Policy | ブラウザによって適用される強制ポリシー |
| Content-Security-Policy-Report-Only | 違反を報告する非ブロッキングポリシー(展開と調整に有用) |
分析が探すもの
所見は、実用的なCSP強化チェックと一般的な展開ミスに基づいています。
| 領域 | 所見の例 |
|---|---|
| スクリプトポリシーの強度 | unsafe-inline / unsafe-evalの使用、ワイルドカードソース、nonce/hash戦略の欠如 |
| スタイルポリシーの強度 | unsafe-inlineスタイル、過度に広範なソース、可能な場合のnonce/hashへの移行パスの欠如 |
| フレーミングとクリックジャッキング対策 | フレーム制限の欠如または弱さ(多くの場合frame-ancestors経由) |
| レガシー/非推奨パターン | 近代化すべき古いディレクティブやパターン |
| 展開準備状況 | Report-Onlyポリシーの存在とレポートエンドポイントの可視性 |
コマンドライン
これらのコマンドを使用してCSPヘッダーを素早く検査できます。アナライザーのレポート内容を検証する際に便利です。
macOS / Linux
レスポンスヘッダーを取得(CSPを探す)
curl -I https://example.comレスポンスヘッダー内のContent-Security-PolicyとContent-Security-Policy-Report-Onlyを検査します。
リダイレクトを追跡しながらヘッダーを確認
curl -IL https://example.com最終的な宛先(HTTPS、www、アプリシェルルート)からのCSPヘッダーを確実に確認できます。
CSPヘッダーのみを表示(大文字小文字を区別しない)
curl -I https://example.com | grep -i "content-security-policy"完全なヘッダーセットからCSPおよびレポート専用ヘッダーを素早く分離します。
Windows (PowerShell)
CSPヘッダーを検査
$r = Invoke-WebRequest -Uri https://example.com -Method Head; $r.Headers['Content-Security-Policy']; $r.Headers['Content-Security-Policy-Report-Only']存在する場合、強制およびレポート専用のCSPヘッダーを表示します。
ユースケース
XSSに対するサイトの強化
CSPを使用して、スクリプトやスタイルの読み込み元を制限し、インラインコードの処理方法を管理することで、インジェクション脆弱性の影響を軽減します。
- unsafe-inline/unsafe-evalを特定し、nonce/hashへの移行計画を立てる
- script-src/style-srcのソースを信頼できるオリジンに制限
- 不足している防御的ディレクティブを追加(base-uri、object-src、frame-ancestors)
Report-OnlyでCSPを安全に展開
Content-Security-Policy-Report-Onlyから始めて違反を繰り返し調整することで、本番環境を壊すことなくCSPを段階的に導入します。
- レポート専用ポリシーの存在を検出
- 強制適用前に何がブロックされるかを理解
- 展開計画とチケット用にレポートをエクスポート
壊れたスクリプト、iframe、またはサードパーティウィジェットのデバッグ
過度に厳格なCSPは、アナリティクス、埋め込みコンテンツ、またはAPI接続をブロックする可能性があります。アナライザーを使用して、ポリシーが許可する内容と明示的なソースが必要な箇所を確認します。
- 許可されたscript/img/connect/frameソースを確認
- 応急処置として追加された過度に広範なワイルドカードを検出
- 広範な許可を対象ドメインに置き換え
セキュリティレビュー / コンプライアンス証跡
現在のCSPの状況について、セキュリティレビュー、クライアントアンケート、または内部コンプライアンス用に一貫したレポートを生成します。
- 時間経過に伴う変更を追跡するためのJSONをダウンロード
- 監査証跡と共有のためのPDFをダウンロード
❓ Frequently Asked Questions
❓CSPとは何ですか?何から保護しますか?
❓CSPとCSP Report-Onlyの違いは何ですか?
❓unsafe-inlineはなぜ危険とされるのですか?
❓ナンスやハッシュは必要ですか?
❓CDNやプロキシはCSPヘッダーを変更できますか?
❓CSPはXSSバグ修正の代替になりますか?
❓ここにURLを貼り付けても安全ですか?
Pro Tips
Content-Security-Policy-Report-Onlyで開始し、違反を収集してから厳格化して強制します。CSPは実際のアプリでは反復的なプロセスです。
unsafe-inlineをナンスまたはハッシュ戦略に置き換えてください。ポリシーは明示的かつ最小限に保ちます。
frame-ancestorsを追加してクリックジャッキングのリスクを軽減し、レガシーヘッダーのみに依存しないようにします。
応急処置として広範なワイルドカードを避けてください。スクリプト/画像/接続には対象を絞ったドメインを優先し、サードパーティの必要性を確認します。
JSONレポートをエクスポートし、CSPの変更をCIで追跡して、CDN/アプリ更新時にヘッダーが変更された際のリグレッションを検出します。
Additional Resources
Other Tools
- CSSビューティファイア
- HTMLビューティファイア
- JavaScriptビューティファイア
- PHPビューティファイア
- カラーピッカー
- スプライト抽出ツール
- Base32 バイナリエンコーダー
- Base32 デコーダー
- Base32 エンコーダー
- Base58 バイナリエンコーダー
- Base58 デコーダー
- Base58 エンコーダー
- Base62 バイナリエンコーダー
- Base62 デコーダー
- Base62 エンコーダー
- Base64 バイナリエンコーダー
- Base64デコーダー
- Base64エンコーダー
- 16進数バイナリエンコーダー
- 16進数デコーダー
- 16進数エンコーダー
- C#フォーマッタ
- CSVフォーマッタ
- Dockerfile Formatter
- Elmフォーマッタ
- ENVフォーマッタ
- Goフォーマッタ
- GraphQLフォーマッタ
- HCLフォーマッタ
- INIフォーマッタ
- JSONフォーマッタ
- LaTeXフォーマッタ
- Markdownフォーマッタ
- Objective-Cフォーマッタ
- Php Formatter
- Protoフォーマッタ
- Pythonフォーマッタ
- Rubyフォーマッタ
- Rustフォーマッタ
- Scalaフォーマッタ
- シェルスクリプトフォーマッタ
- SQLフォーマッタ
- SVG フォーマッタ
- Swift フォーマッタ
- TOML フォーマッタ
- Typescript Formatter
- XML フォーマッタ
- YAML フォーマッタ
- Yarn フォーマッタ
- CSSミニファイア
- Html Minifier
- Javascript Minifier
- JSONミニファイア
- XML ミニファイア
- Cache Headers Analyzer
- Cors Checker
- Dns Records Lookup
- HTTPヘッダービューア
- Http Status Checker
- Open Graph Meta Checker
- Redirect Chain Viewer
- Robots Txt Tester
- Security Headers Checker
- Security Txt Checker
- Sitemap Url Inspector
- Tls Certificate Checker
- PDFからテキストへ
- 正規表現テスター
- SERPランクチェッカー
- Whois ルックアップ