CSP レポート
Content Security Policy 違反をブラウザがサーバーに自動報告し、XSS やデータ漏洩を検知する仕組み
CSP レポートとは
CSP レポートは、Content Security Policy (CSP) に違反するリソースの読み込みやスクリプトの実行をブラウザが検知し、指定したエンドポイントに自動報告する仕組みである。XSS 攻撃の試行、意図しない外部リソースの読み込み、サードパーティスクリプトの不正な動作を検知できる。
基本的な設定
最小の設定は、CSP ヘッダーに報告先を 1 つ足すだけである。
Content-Security-Policy: default-src 'self'; script-src 'self'; report-uri /csp-report
ブラウザが CSP 違反を検知すると、Content-Type: application/csp-report で以下の JSON を /csp-report に POST する。
{
"csp-report": {
"document-uri": "https://example.com/page",
"violated-directive": "script-src 'self'",
"blocked-uri": "https://evil.com/malicious.js",
"original-policy": "default-src 'self'; script-src 'self'",
"disposition": "enforce"
}
}
Report-Only モード
CSP を本番に導入する際、いきなり enforce (ブロック) すると、正当なリソースまでブロックしてサイトが壊れるリスクがある。Content-Security-Policy-Report-Only ヘッダーを使えば、違反を報告するだけでブロックしない。
Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self'; report-uri /csp-report
- Report-Only で CSP を設定し、違反レポートを収集
- レポートを分析し、正当なリソースを CSP に追加
- 違反が十分に減ったら、enforce モードに切り替え
report-to への移行
report-uri は仕様上すでに非推奨で、後継は report-to ディレクティブと Reporting-Endpoints レスポンスヘッダーの組み合わせである。Chrome のドキュメントでは Reporting-Endpoints を使う世代を Reporting API v1、旧 Report-To ヘッダーの世代を v0 と呼び分けている (2026 年 8 月時点)。
Content-Security-Policy: default-src 'self'; report-to csp-endpoint
Reporting-Endpoints: csp-endpoint="https://example.com/csp-report"
移行時の落とし穴が 2 つある。1 つは、report-to を解釈するブラウザは同じポリシー内の report-uri を無視するという挙動である。対応が揃うまでは両方を並べて書いておけば、対応ブラウザは report-to を、未対応ブラウザは report-uri を使うため取りこぼしが出ない。もう 1 つは届くレポートの形が変わる点で、report-to 経由では Content-Type: application/reports+json で type が "csp-violation" のレポートが送られ、違反の中身は body の下にキャメルケースのキー (blockedURL / documentURL / effectiveDirective など) で入る。{"csp-report": {...}} を前提に書いた受信処理はそのままでは解釈できないため、両形式を判別して扱う。
レポートの分析ポイント
レポートを受け取ったら、次のフィールドから読む。
| フィールド | 確認すべきこと |
|---|---|
blocked-uri | 不正な外部ドメインか、正当なリソースか |
violated-directive | どの CSP ディレクティブに違反したか (effective-directive の旧名で、値は同じ) |
document-uri | どのページで発生したか |
disposition | enforce (ブロック済み) か report (報告のみ) か |
大量のレポートが発生する場合、blocked-uri でグルーピングし、頻度の高い違反から対処する。
CSP レポートの背景や設計思想は関連書籍に詳しい。
この記事は役に立ちましたか?
関連用語
CSP
Content Security Policy の略で、Web ページで実行可能なリソースの出所を制限するセキュリティ機構
セキュリティヘッダー
HTTP レスポンスヘッダーでブラウザのセキュリティ機能を制御し、XSS やクリックジャッキングを防ぐ仕組み
CORS
ブラウザの同一オリジンポリシーを緩和し、異なるオリジン間のリソース共有を許可する仕組み
ポート
ネットワーク通信でプロセスを識別する番号で、TCP/UDP の接続先を指定する
CSRF
ユーザーが認証済みの Web サイトに対して、攻撃者が意図しないリクエストを送信させる攻撃手法
Playwright
Microsoft が開発したクロスブラウザ E2E テストフレームワーク
関連する記事
IT パスポート参考書の選び方 - 完読できる 1 冊と過去問の組み合わせ
IT パスポート試験の参考書選びを「完読できるか」を軸に整理。イラスト型 / 絞り込み型 / 丁寧解説型などテキストの個性の見分け方、過去問題集との組み合わせ、年度版とシラバス対応の注意点を 2026 年 8 月時点の定番書で解説します。
あなたの「積ん読」は投資ポートフォリオである
積ん読を罪悪感の対象ではなく、知識への分散投資として捉え直す視点を提案します。積ん読の戦略的な管理方法と、必要なときに引き出す仕組みづくり。
本についてくるダウンロード素材を使い倒す
プログラミングの本には、サンプルコードや練習用データのダウンロード特典がついていることがあります。素材の探し方と、完成版コードの使い方を解説します。