開発者 / セキュリティポリシー
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つ貼り付けます。
- ディレクティブを有効にし、スペース区切りの値を編集して警告を確認します。
- 出力形式を選択してコピーし、サイトのリソースに対してテストします。
プライバシーと制限事項
ポリシーはブラウザ内に保持されます。ウェブサイトには接続しません。
関連ツール
よくある質問
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での配信は、動的に生成されるレスポンスには適用されません。
無料ツール · ブラウザ内で · アカウント不要