CSPヘッダー作成

Content-Security-Policy(CSP)を、ディレクティブごとのチェックと入力で組み立てます。HTTPヘッダー・<meta>・Apache・nginx の書き方で出力し、危ない設定はその場で指摘します。

既存のCSPを貼り付けて解析・編集する

2回押すと、今の設定が貼り付けた内容に置き換わります。

http:// の読み込みを https:// に自動で切り替え

      

    CSPヘッダー作成でできること

    Content-Security-Policy(CSP)を、ディレクティブごとのチェックボックスと入力欄で組み立てるツールです。HTTPヘッダー・<meta>・Apache・nginx の書き方で出力し、'unsafe-inline' や * のような危ない設定をその場で指摘します。

    使い方

    1. 左の各ディレクティブ(default-src、script-src など)のチェックを入れ、'self' や data: などのキーワードを選びます。ホスト名や nonce-… ・sha256-… は「追加のソース」に空白区切りで入れます。
    2. 必要に応じて upgrade-insecure-requests、report-uri、report-to(グループ名と送信先URL)、「その他のディレクティブ」を設定します。
    3. 上の「適用(ブロックする)」「Report-Only(報告だけ)」でモードを切り替え、右の出力形式(HTTPヘッダー/<meta>/Apache/nginx)を選びます。
    4. 出力の下の「危険」「注意」「推奨」の一覧を確認し、「コピー」または「ポリシー本体だけコピー」で貼り付けます。
    5. 今使っているCSPを直したいときは「既存のCSPを貼り付けて解析・編集する」に貼り、「解析して読み込む」を2回押すと編集欄に読み込まれます。

    計算の仕組みと注意点

    よくある質問

    CSPを入れたらサイトが表示崩れしないか心配です。

    まず「Report-Only(報告だけ)」で出力したヘッダーを設定すると、ブロックせずに違反だけをブラウザのコンソールや報告先に知らせてくれます。数日様子を見て違反がなくなってから「適用」に切り替えるのが安全です。

    'unsafe-inline' はなぜ危険なのですか?

    ページ内に書かれた <script> や onclick 属性をすべて実行できるため、攻撃者が差し込んだスクリプトも動いてしまい、XSS対策としての効果がほぼなくなります。script-src で選ぶと「危険」と表示されるので、nonce か hash に置き換えられないか確認してください。

    <meta> タグと HTTPヘッダーのどちらで設定すべき?

    できればHTTPヘッダーです。<meta> では frame-ancestors(クリックジャッキング対策)や報告先、Report-Only が使えません。サーバー設定を変えられないホスティングでは <meta> 形式を選ぶと、使えない部分を外した形で出力します。

    Apache や nginx ではどこに書けばいいですか?

    Apache は .htaccess か VirtualHost 内に Header always set の行を書きます(mod_headers が必要)。nginx は server か location ブロックに add_header の行を書きます。出力形式を切り替えると、それぞれの書き方でコピーできます。