跳到主要内容

CSP 生成器

从结构化的指令字段(default-src、script-src、style-src、img-src 等)构建 Content-Security-Policy 标头值,以及可直接粘贴的 HTML meta 标签。

输入

未明确设置的指令的回退源列表。

脚本可以从哪里加载。

样式表可以从哪里加载。

图像可以从哪里加载。

字体可以从哪里加载。

允许 fetch/XHR/WebSocket 连接的源。

嵌套浏览上下文(iframe)可以从哪里加载。

<object>/<embed>/<applet> 资源可以从哪里加载。

音频/视频源可以从哪里加载。

哪些父源可以在 frame 中嵌入此页面 — 点击劫持保护。

限制文档的 <base> 元素中可使用的 URL。

限制可用作 HTML 表单操作目标的 URL。

自动将页面的 HTTP 请求升级到 HTTPS。

输出

Generated CSP Header Value

将此设置为 Content-Security-Policy 响应标头的值。

Meta Tag
 
这对您有帮助吗?

使用此工具的更多方式

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_HERE

将此粘贴给任何已连接 IOTools 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 调用费用5 积分起
需要更多积分?查看定价

也可通过

使用指南

什么是 Content-Security-Policy?

Content-Security-Policy(CSP)是一个 HTTP 响应标头,它告诉浏览器页面允许加载的脚本、样式、图像、字体和其他资源的确切源。它是针对跨站脚本(XSS)最有效的浏览器端防御之一:即使攻击者设法通过注释字段或未清理的输入将 <script> 标签注入到您的页面中,编写良好的 CSP 也会阻止该脚本执行(或从一开始就阻止从攻击者域加载),因为它不匹配任何允许的源。CSP 还阻止点击劫持(通过 frame-ancestors)、限制 <base> 标签注入,并可以锁定表单允许提交到的位置。此工具从结构化的指令字段构建有效的 CSP 标头值,因此您不需要记忆语法或冒着打字错误的风险,这会悄悄地禁用策略。

如何使用

  1. 为要限制的每个指令填写源列表 — 例如,default-src 使用 'self',或 script-src 使用 'self' https://cdn.example.com。用空格分隔多个源。
  2. 将指令留空以从生成的标头中完全忽略它 — 忽略的指令只会回退到 default-src(除了 frame-ancestorsbase-uri,它们永远不会被继承,必须明确设置)。
  3. 启用 upgrade-insecure-requests 让浏览器自动将页面的 HTTP 子资源请求改写为 HTTPS。
  4. Generated CSP Header Value 复制到您的 Content-Security-Policy 响应标头中,或复制 Meta Tag 直接粘贴到页面的 <head> 中。

支持的指令

  • default-src — 未明确设置的任何提取指令使用的回退源列表。
  • script-src — 可以从哪里加载/执行 JavaScript。
  • style-src — 可以从哪里加载 CSS。
  • img-src — 可以从哪里加载图像。
  • font-src — 可以从哪里加载网络字体。
  • connect-src — 允许 fetchXMLHttpRequestWebSocket 和 EventSource 连接的源。
  • frame-src — 可以从哪里加载嵌套浏览上下文(<iframe>)。
  • object-src — 可以从哪里加载 <object><embed><applet> 资源;建议使用 'none',因为这些是遗留的插件 API。
  • media-src — 可以从哪里加载 <audio>/<video> 源。
  • frame-ancestors — 允许在 frame 中嵌入此页面的父源;防止点击劫持的主要防御。
  • 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:)或 *(任何源 — 非常宽松)。

常见问题

为什么我的指令在输出中丢失了? 空指令完全被忽略 — 只有至少有一个源的指令才会包含在生成的标头中。

应该使用标头还是 meta 标签? HTTP Content-Security-Policy 标头是首选 — 它在解析任何 HTML 之前应用,并支持 <meta> 标签无法实施的指令(如 frame-ancestorsreport-uri)。只有当您无法控制服务器响应标头时,才使用 meta 标签。

default-src 和单独设置每个指令有什么区别? default-src 是回退值:任何您留空的提取指令都会继承它。仅设置 default-src 'self' 是一个合理的最小基线,但显式指令为您提供了每个资源类型更精细的控制。

隐私

所有操作都在您的浏览器中进行 — 您输入的指令值永远不会发送到我们的服务器。

cspcontent security policyhttp headerxssweb securitymeta tagweb development

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。