Using CSP violation reports

草案
このページは完成していません。

Web サイトの管理者のための Content Security Policy の強力な機能の一つは、あなたのサイトへの攻撃を記録したレポートを生成し、届ける機能をサポートしていることです。これらのレポートは、HTTP POST 要求により、report-uri ポリシーディレクティブで指定した複数のサーバへ届けられます。レポートは JSON 形式です。この記事は、レポート機能を使用するようにサイトを設定する方法と、レポートの形式を紹介します。

CSP をサポートするブラウザは常に、各ポリシー違反についての違反レポートを送信します。これは、正当な report-uri ディレクティブが含まれたポリシーが確立されている場合のポリシーに対する違反です。

レポートの有効化

デフォルトでは、違反レポートは送信されません。違反レポートを有効にするには、report-uri ポリシーディレクティブを設定し、少なくとも一つのレポート送信先の URI を指定する必要があります:

Content-Security-Policy: default-src self; report-uri http://reportcollector.example.com/collector.cgi

次に、レポートを受信するサーバをセットアップする必要があります。運用に合わせて適切にレポートを保存または処理してください。

注記: Firefox 23 より前は、X-Content-Security-Policy ヘッダを使用していました。このヘッダは、将来非推奨になるでしょう。

違反レポートの構文

レポートの JSON オブジェクトには、次のデータが含まれます:

document-uri
違反が発生したドキュメントの URI です。
referrer
違反が発生したドキュメントのリファラです。
blocked-uri
Content Security Policy により読み込みがブロックされたリソースの URI です。ブロックされた URI が document-uri とは異なる生成元に由来する場合は、ブロックされた URI がスキーマ、ホスト、ポートだけを含むように切り詰められます。
violated-directive
違反があったポリシーセクションの名前です。
original-policy
Content-Security-Policy HTTP ヘッダに指定された元のポリシーです。

違反レポートのサンプル

http://example.com/signup.html に置かれたページを仮定します。このサイトには、次のポリシーが設定されています:

Content-Security-Policy: default-src 'self'; img-src 'self' *.example.com; report-uri /_/csp-reports

evil.example.net にある攻撃者の Web ページが signup.html にリンクして、signup.htmlinjected.png を含むようにだました場合、ブラウザは以下の違反レポートを POST リクエストで http://example.com/_/csp-reports に送信します:

{
  "csp-report": {
    "document-uri": "http://example.com/signup.html",
    "referrer": "http://evil.example.net/haxor.html",
    "blocked-uri": "http://evil.example.net/injected.png",
    "violated-directive": "img-src *.example.com",
    "original-policy": "default-src 'self'; img-src 'self' *.example.com; report-uri /_/csp-reports",
  }
}

関連情報

Document Tags and Contributors

Contributors to this page: Marsf, yyss
最終更新者: yyss,