セキュリティツール/CSPビルダー
CSPビルダー
Content-Security-Policyヘッダーを視覚的に構築
プリセット
ディレクティブ
Default fallback for other directives
Controls allowed JavaScript sources
Controls allowed CSS sources
Controls allowed image sources
Controls allowed font sources
Controls allowed fetch/XHR/WebSocket targets
Controls allowed iframe sources
Controls allowed plugin sources (Flash, etc.)
Restricts URLs for <base> element
Restricts form submission targets
Controls who can embed this page
Upgrade HTTP to HTTPS automatically
オプション
有効にすると、違反は報告されますがブロックされません。テストに便利です。
生成されたCSPヘッダー
Content-Security-Policy: default-src 'self'実装例
add_header Content-Security-Policy "default-src 'self'";
Header set Content-Security-Policy "default-src 'self'"
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">
CSPビルダーガイド
ウェブサイトを保護するContent-Security-Policyヘッダーの作成方法を学ぶ
Content-Security-Policyとは?
Content-Security-Policy(CSP)は、クロスサイトスクリプティング(XSS)、クリックジャッキング、その他のコードインジェクション攻撃を防ぐHTTPレスポンスヘッダーです。ウェブサイトで読み込みを許可するコンテンツのソースを指定し、スクリプト、スタイル、画像、その他のリソースを細かく制御できます。
使用方法
- プリセット(厳格、中程度、緩和)を出発点として選択
- ニーズに基づいて個別のディレクティブを有効化・設定
- セキュリティ警告を確認し、設定を適宜調整
- 生成されたヘッダーをコピーしてWebサーバー設定に追加
ベストプラクティス
よくある質問
CSPを厳しく設定しすぎるとどうなりますか?
CSPが厳しすぎると、正当なリソースがブロックされ、ウェブサイトの機能が壊れる可能性があります。これがレポートのみモードで開始することを推奨する理由です。このモードでは、違反はサーバーに報告されますが(report-uriを設定した場合)、実際にはブロックされず、ポリシーを適用する前に問題を特定できます。
'self'と'none'の違いは何ですか?
'self'はウェブサイトと同じオリジン(同じプロトコル、ホスト、ポート)からのコンテンツのみを許可します。'none'はそのタイプのすべてのコンテンツをブロックします。例えば、object-src 'none'はすべてのプラグイン(Flash、Javaなど)の読み込みを防ぎ、これはセキュリティのベストプラクティスです。
'unsafe-inline'が危険とされる理由は?
'unsafe-inline'はインラインスクリプトとスタイルを許可し、CSPのXSS保護の多くを無効にします。HTMLを注入できる攻撃者はインラインスクリプトも注入できます。代わりに、nonce(script-src 'nonce-random123')またはハッシュ(script-src 'sha256-...')を使用して、注入されたものをブロックしながら特定のインラインスクリプトを許可してください。
Google Analyticsやその他のサードパーティスクリプトを許可するには?
script-srcディレクティブに特定のドメインを追加します。Google Analyticsの場合、次のように設定する必要があります:script-src 'self' https://www.googletagmanager.com https://www.google-analytics.com。また、API呼び出し用にconnect-srcに、トラッキングピクセル用にimg-srcにもドメインを追加してください。
CSPは他のセキュリティヘッダーを置き換えることができますか?
いいえ、CSPは他のセキュリティヘッダーを補完するものです。以下も使用すべきです:X-Content-Type-Options: nosniff、X-Frame-Options(ただしCSPのframe-ancestorsで置き換え可能)、X-XSS-Protection、Strict-Transport-Security(HSTS)、Referrer-Policy。各ヘッダーは異なるセキュリティ上の懸念に対処します。