Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

CSP 違反レポートの利用方法

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

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

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

レポートの有効化

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

Content-Security-Policy: default-src self; report-uri https://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 ヘッダに指定された元のポリシーです。

違反レポートのサンプル

https://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 リクエストで https://example.com/_/csp-reports に送信します:

{
  "csp-report": {
    "document-uri": "https://example.com/signup.html",
    "referrer": "https://evil.example.net/haxor.html",
    "blocked-uri": "https://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",
  }
}

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: hashedhyphen, hamasaki, yyss, Marsf
 最終更新者: hashedhyphen,