開発者 / セキュリティポリシー

CSPジェネレーター:Content Security Policyの作成と解析

ソースリスト、nonceとhashのプレースホルダー、レポート用ディレクティブ、一般的なプリセットを使ってContent-Security-Policyヘッダーを作成します。警告を確認し、HTTP、meta、nginx、Apache、静的な_headers形式の出力をコピーできます。

CSPジェネレーター:Content Security Policyの作成と解析: ポリシーをブラウザ内で作成し、unsafe-inline、unsafe-eval、広範なソース、重複したディレクティブ、デプロイ前のプレースホルダーを検出します。パーサーは未知のディレクティブを保持し、同じディレクティブが複数ある場合は最初の記述を使用します。一度に解析できるポリシーは1つだけで、保護対象ページを読み込みません。 サーバーへのファイルアップロードは一切なく、100%ブラウザ内でローカル実行します。

カテゴリ
開発者ツール
実行回数
ブラウザ内で
コスト
無料 · 登録不要
提供状況
すぐに使えます
コンテンツセキュリティポリシーベンチローカル処理

完全にブラウザ内で実行します

プリセットを適用すると現在のポリシーが置き換えられます。まずレポート専用ヘッダーでテストしてください。Nonceのプレースホルダーにはサーバー連携が必要です。静的ヘッダーでは新しいNonceを生成できません。

スクリプトソーストークン

script-src · strict-dynamicには有効なnonceまたはhashが必要で、対応ブラウザではホストの許可リストより優先されます。

script-src · デプロイ前にnonceとhashのプレースホルダーを置き換えてください。レスポンスごとに、予測できない新しいnonceを生成してください。

メタポリシーではframe-ancestorsやsandboxの適用、report-uriの使用、レポート専用ポリシーの配信はできません。ここではレポート用ディレクティブを省略しています。

これは構文とリスクの確認であり、セキュリティ監査ではありません。不明または不正な形式のソース式は、ブラウザでテストする必要があります。追加のポリシーはすべて同時に適用され、先行するポリシーを緩和することはできません。生成された_headersファイルは静的レスポンス用です。動的レスポンスには独自のヘッダー設定が必要です。

ポリシーの構文と適用方法

W3C Content Security Policy Level 3: https://www.w3.org/TR/CSP3/ 。ディレクティブはセミコロンで、値は空白で区切ります。メタによる適用は、HTTPレスポンスヘッダーよりも機能が限られます。

nonce、ハッシュ、デプロイ

MDN Content Security Policy guide: https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP 。strict-dynamicは、nonceまたはハッシュで承認されたスクリプトから、そのスクリプトが読み込むスクリプトへ信頼を引き継ぎます。対応ブラウザでは、ホストの許可リストよりも優先されます。信頼するスクリプトの動作を監査し、最終的なポリシーをテストしてください。

使い方

  1. プリセットを選択するか、既存のポリシーを1つ貼り付けます。
  2. ディレクティブを有効にし、スペース区切りの値を編集して警告を確認します。
  3. 出力形式を選択してコピーし、サイトのリソースに対してテストします。

プライバシーと制限事項

ポリシーはブラウザ内に保持されます。ウェブサイトには接続しません。

関連ツール

よくある質問

nonceプレースホルダーはそのまま使えますか?

いいえ。レスポンスごとに予測不能なnonceを生成し、信頼するスクリプトに一致する値を設定してください。固定された静的ヘッダーからnonceを生成することはできません。hashのプレースホルダーは、対象コンテンツの実際のhashに置き換えてください。

metaポリシーでは何ができませんか?

frame-ancestorsやsandboxの強制、report-uriの使用、report-onlyポリシーの配信はできません。生成されるmeta出力からはレポート用ディレクティブが省略されるため、ドキュメントのhead内の早い位置に配置する必要があります。

report-toを設定するとレポート送信先が作成されますか?

いいえ。別途Reporting-Endpointsレスポンスヘッダーで設定するグループ名を指定するだけです。report-uriは古い仕様で、ブラウザによって対応状況が異なります。このツールがレポートを送信することはありません。

プリセットは自分のウェブサイトで必ず動作しますか?

いいえ。まずはreport-onlyのHTTP配信から始め、サイトに必要なリソースを確認してください。既存のポリシーは新しいポリシーと組み合わされるため、2つ目のポリシーで以前の制限を緩和することはできません。静的な_headersでの配信は、動的に生成されるレスポンスには適用されません。

無料ツール · ブラウザ内で · アカウント不要