Toolypet
セキュリティツール/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レスポンスヘッダーです。ウェブサイトで読み込みを許可するコンテンツのソースを指定し、スクリプト、スタイル、画像、その他のリソースを細かく制御できます。

使用方法

  1. プリセット(厳格、中程度、緩和)を出発点として選択
  2. ニーズに基づいて個別のディレクティブを有効化・設定
  3. セキュリティ警告を確認し、設定を適宜調整
  4. 生成されたヘッダーをコピーして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。各ヘッダーは異なるセキュリティ上の懸念に対処します。