CSP ジェネレーター
構造化されたディレクティブフィールド(default-src、script-src、style-src、img-src など)から Content-Security-Policy ヘッダー値を構築し、HTML に貼り付け可能なメタタグを生成します。
入力
明示的に設定されていないディレクティブのフォールバックソースリスト。
スクリプトをロードできる場所。
スタイルシートをロードできる場所。
画像をロードできる場所。
フォントをロードできる場所。
fetch/XHR/WebSocket 接続を許可するオリジン。
ネストされたブラウジングコンテキスト(iframe)をロードできる場所。
<object>/<embed>/<applet> リソースをロードできる場所。
オーディオ/ビデオソースをロードできる場所。
このページをフレーム内に埋め込むことができる親 — クリックジャッキング対策。
ドキュメントの <base> 要素で使用可能な URL を制限します。
HTML フォームのアクションターゲットとして使用可能な URL を制限します。
ページの HTTP リクエストを自動的に HTTPS にアップグレードします。
出力
この値を Content-Security-Policy レスポンスヘッダーの値として設定してください。
このツールを使う他の方法
REST API
curl -X POST https://api.iotools.cloud/v1/tool/csp-generator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"defaultSrc": "'self'",
"scriptSrc": "'self' https://cdn.example.com",
"styleSrc": "",
"imgSrc": "'self' data:",
"fontSrc": "",
"connectSrc": "",
"frameSrc": "",
"objectSrc": "",
"mediaSrc": "",
"frameAncestors": "",
"baseUri": "",
"formAction": "",
"upgradeInsecure": ""
}'ご自身のアカウントのキーに差し替えてください。ツールのフィールドがそのままリクエストボディになります——ラッパーはありません。
AIエージェントに依頼する
Use the IOTools `csp-generator` tool (CSP Generator) on this input:
YOUR_INPUT_HEREIOTools MCPサーバーに接続された任意のエージェントにこれを貼り付け、入力内容を追加してください。
埋め込みウィジェット
<iframe
src="https://iotools.cloud/embed/csp-generator/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="CSP ジェネレーター — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>ご自身のページに貼り付けるだけ——無料、キー不要、リンクを掲載するだけです。
| API/MCP 1回あたりの費用 | 5クレジットから |
|---|---|
| クレジットが足りませんか? | 料金を見る |
次の方法でも利用可能
ガイド
Content-Security-Policy とは
Content-Security-Policy(CSP)は HTTP レスポンスヘッダーで、ページがロードできるスクリプト、スタイル、画像、フォント、その他のリソースの正確なソースをブラウザに告知します。これはクロスサイトスクリプティング(XSS)に対する最も効果的なブラウザ側の防御の 1 つです。攻撃者がコメント欄やサニタイズされていない入力を通じて <script> タグをページに注入することに成功した場合でも、よく書かれた CSP はそのスクリプトが実行されることを防止します(または最初から攻撃者のドメインからロードされることを防止します)。なぜなら、そのスクリプトはどの許可されたソースにも一致しないからです。CSP はまた、クリックジャッキング(frame-ancestors 経由で)をブロックし、<base> タグインジェクションを制限し、フォーム送信が許可される場所をロックダウンします。このツールは構造化されたディレクティブフィールドから有効な CSP ヘッダー値を構築するため、構文を暗記する必要がなく、ポリシーを静かに無効にする可能性のあるタイプミスのリスクがありません。
使い方
- 制限したい各ディレクティブのソースリストを入力します — たとえば、
default-srcに'self'、またはscript-srcに'self' https://cdn.example.com。複数のソースはスペースで区切ります。 - ディレクティブを空のままにして、生成されたヘッダーから完全に省略します — 省略されたディレクティブは単に
default-srcにフォールバックします(frame-ancestorsとbase-uriを除き、これらは継承されず、明示的に設定する必要があります)。 - upgrade-insecure-requests を有効にして、ブラウザがページの HTTP サブリソースリクエストを自動的に HTTPS に書き換えるようにします。
- Generated CSP Header Value を
Content-Security-Policyレスポンスヘッダーにコピーするか、Meta Tag をコピーしてページの<head>に直接貼り付けます。
サポートされるディレクティブ
- default-src — 明示的に設定されていないフェッチディレクティブで使用されるフォールバックソースリスト。
- script-src — JavaScript をロード/実行できる場所。
- style-src — CSS をロードできる場所。
- img-src — 画像をロードできる場所。
- font-src — ウェブフォントをロードできる場所。
- connect-src —
fetch、XMLHttpRequest、WebSocket、EventSource 接続を許可するオリジン。 - frame-src — ネストされたブラウジングコンテキスト(
<iframe>)をロードできる場所。 - object-src —
<object>、<embed>、<applet>リソースをロードできる場所。これらはレガシープラグイン API であるため'none'を推奨します。 - media-src —
<audio>/<video>ソースをロードできる場所。 - frame-ancestors — このページをフレーム内に埋め込むことが許可されているオリジン。クリックジャッキングに対する主な防御。
- base-uri —
<base>要素で使用可能な URL を制限し、base-tag インジェクション攻撃を防止します。 - form-action — ページ上の HTML
<form>が送信できる URL を制限します。
一般的なソース値
'self'(同じオリジン)、'unsafe-inline'(インラインの <script>/<style> を許可 — XSS 保護を弱めるため可能な限り避ける)、'unsafe-eval'(eval() を許可 — 避ける)、特定のドメイン(https://cdn.example.com)、スキーム(https:、data:)、または *(任意のオリジン — 非常に許容的)。
FAQ
出力からディレクティブが見当たらないのはなぜですか? 空のディレクティブは完全に省略されます — 少なくとも 1 つのソースを持つディレクティブのみが生成されたヘッダーに含まれます。
ヘッダーとメタタグのどちらを使用すべきですか? HTTP Content-Security-Policy ヘッダーが推奨されます — HTML が解析される前に適用され、<meta> タグが適用できないディレクティブ(frame-ancestors や report-uri など)をサポートしています。サーバーレスポンスヘッダーを制御できない場合のみメタタグを使用してください。
default-src と各ディレクティブを個別に設定することの違いは何ですか? default-src はフォールバックです。空のままにしたフェッチディレクティブはそれを継承します。default-src 'self' のみを設定することは合理的な最小限のベースラインですが、明示的なディレクティブはリソースタイプごとにより細かい制御を提供します。
プライバシー
すべてはブラウザで実行されます — 入力するディレクティブ値はサーバーに送信されることはありません。