コンテンツセキュリティポリシー生成ツール

XSS攻撃やコードインジェクションから保護するCSPヘッダーを生成します。セキュリティプリセットとNginx、Apache、HTML metaの設定を含みます。

セキュリティプリセット

ディレクティブの設定

fetch Directives

default-src

Fallback for other fetch directives

Examples: 'self', 'self' https:, 'none'
script-src

Sources for JavaScript execution

Examples: 'self', 'self' 'unsafe-inline', 'self' https://cdn.example.com
style-src

Sources for stylesheets

Examples: 'self', 'self' 'unsafe-inline', 'self' https://fonts.googleapis.com
img-src

Sources for images

Examples: 'self', 'self' data:, 'self' https: data:
font-src

Sources for fonts

Examples: 'self', 'self' https://fonts.gstatic.com, 'self' data:
connect-src

Sources for XHR, WebSocket, and EventSource

Examples: 'self', 'self' https://api.example.com, 'self' wss:
media-src

Sources for audio and video

Examples: 'self', 'self' https://media.example.com, 'none'
object-src

Sources for plugins (object, embed, applet)

Examples: 'none', 'self', 'self' https://plugins.example.com
frame-src

Sources for nested browsing contexts (iframe)

Examples: 'self', 'none', 'self' https://www.youtube.com
worker-src

Sources for Worker, SharedWorker, or ServiceWorker

Examples: 'self', 'none', 'self' blob:
manifest-src

Sources for web app manifests

Examples: 'self', 'none', 'self' https://cdn.example.com

document Directives

base-uri

Restrict URLs for <base> elements

Examples: 'self', 'none', 'self' https://example.com

navigation Directives

form-action

Restrict form submission URLs

Examples: 'self', 'none', 'self' https://api.example.com
frame-ancestors

Restrict embedding this page in frames

Examples: 'none', 'self', 'self' https://trusted.example.com

reporting Directives

report-uri

URL to send CSP violation reports

Examples: https://example.com/csp-report, /csp-violation-endpoint

生成されたコンテンツセキュリティポリシー

CSPポリシー

default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'

HTTPヘッダー

Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'

HTML Metaタグ

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'">

Nginx設定

add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'";

Apache設定

Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'"

設定をダウンロード

セキュリティのヒント

  • 問題のある変更を特定するためにレポートオンリーモードから始めてください
  • 可能な限り'unsafe-inline'と'unsafe-eval'を避けてください
  • インラインスクリプト/スタイルにはnonceまたはハッシュを使用してください
  • サイトの発展に合わせてCSPを定期的に見直し更新してください
  • 攻撃や設定ミスを検出するためにCSP違反レポートを監視してください
  • 最新のCSP実装にはnonceとともに'strict-dynamic'を使用してください

Share this tool

Help others discover Content Security Policy Generator

このツールについて

使い方

  • CSPディレクティブを設定してリソース読み込みを制御する
  • セキュリティプリセットを使って一般的なセキュリティレベルを設定
  • 各種Webサーバー用のヘッダーを生成
  • 適用前にレポートオンリーモードでテスト

主な用途

  • XSS攻撃とコードインジェクションの防止
  • サードパーティのリソース読み込みの制御
  • 多層防御セキュリティの実装
  • セキュリティのベストプラクティスへの準拠

よくある質問

コンテンツセキュリティポリシー(CSP)とは何ですか?なぜ必要ですか?

CSPはWebサイトに読み込める可能リソースを制御することで、クロスサイトスクリプティング(XSS)攻撃やデータインジェクションを防ぐセキュリティ機能です。悪意のあるコードの実行から保護するための追加セキュリティ層として機能します。

適用モードとレポートオンリーモードの違いは何ですか?

適用モードはCSPポリシー違反を積極的にブロックし、レポートオンリーモードはブロックせずに違反を記録します。本番サイトで適用する前に、まずレポートオンリーモードでポリシーをテストし、潜在的な問題を特定することをお勧めします。

どのセキュリティプリセットを選べばよいですか?

最大の保護には「厳格なセキュリティ」、外部リソースを使用するほとんどのWebサイトには「中程度のセキュリティ」、開発環境やレガシーサイトには「許容的」から始めてください。プリセット選択後にディレクティブをカスタマイズできます。

HTTPヘッダーの代わりにmetaタグでCSPを使用できますか?

はい、CSPにはHTMLのmetaタグを使用できますが、HTTPヘッダーの方が多くの機能とセキュリティを提供するため推奨です。レポートオンリーモードはHTTPヘッダーでのみ実装でき、metaタグでは使用できません。

'unsafe-inline'とは何ですか?避けるべきですか?

'unsafe-inline'はインラインスクリプトとスタイルの実行を許可しますが、セキュリティリスクになる可能性があります。外部ファイルを使用するか、インラインコンテンツにはnonce/ハッシュを実装するほうが良いです。

Google AnalyticsやCDNなどのサードパーティサービスをどう処理しますか?

適切なディレクティブに特定のドメインを追加します(例:アナリティクスにはscript-src、Webフォントにはfont-src)。Google Analyticsには'https://www.google-analytics.com'をscript-srcに追加します。ワイルドカードより具体的なドメインを指定してください。

CSPがWebサイトを壊してしまった場合はどうすればよいですか?

まず、機能を壊さずに違反を特定するためにレポートオンリーモードを使用します。ブラウザのコンソールでCSP違反エラーを確認し、必要なリソースを許可するようにポリシーを更新します。段階的にセキュリティを強化してください。

CSP違反レポートはどのように実装しますか?

CSP違反データを含むPOSTリクエストを受信できるエンドポイントを指すreport-uriディレクティブを設定します。多くのサービスがCSP違反モニタリングを提供しています。

同じページで複数のCSPポリシーを使用できますか?

複数のCSPポリシーが定義されている場合(ヘッダーとmetaタグ経由)、最も制限的なポリシーが適用されます。デバッグが難しい複数の競合するポリシーより、適切に設定された単一のポリシーを使用することをお勧めします。

frame-srcとframe-ancestorsの違いは何ですか?

frame-srcはページがiframeに埋め込めるURLを制御し、frame-ancestorsはどのURLがページを埋め込めるかを制御します。frame-ancestors: 'none'を使用すると、ページがどこにも埋め込まれないようにできます。

CSPポリシーをどのくらいの頻度で更新すべきですか?

新しいサードパーティサービスを追加したり、サイトのアーキテクチャを変更したり、CSP違反レポートを受け取ったりしたときにCSPポリシーを見直してください。定期的なセキュリティ監査にはCSPポリシーのレビューを含めてください。

CSPはすべてのブラウザで動作しますか?

CSPはすべての最新ブラウザでサポートされていますが、古いバージョンでは新しいCSP機能のサポートが限られている場合があります。CSPは適切にデグレードします——サポートされていないディレクティブは無視されます。

Share ToolsZone

Help others discover these free tools!

このページをシェア

CSP生成ツール | Content Security Policyヘッダー