Web 安全配置

CSP 生成器部署前看清每条指令

编辑策略文本或指令,查看格式化响应头、风险提示和单个示例请求的静态结果。

CSP 生成器

策略文本

指令编辑

当前结果

单个请求的来源检查

此静态示例中来源不匹配

已建模的来源均未匹配这个资源 URL。

生效指令: script-src · 使用了回退

策略提示

没有发现已建模的问题;这不是上线批准。

解析出的指令

显示 6 / 6 条指令

  • default-src 'self'
  • script-src 'self'
  • img-src 'self' data:
  • object-src 'none'
  • base-uri 'self'
  • frame-ancestors 'none'

策略、域名和示例 URL 只在浏览器本地处理,不发送请求。

仅报告模式只观察可能的违规,不会阻断;发送报告还需配置接收端点,本页不发送或接收报告。

6 条指令 · 0 条提示

第三方脚本突然被拦截时,CSP 生成器可以指出究竟是哪条指令在起作用。初始示例让 example.com 页面加载 cdn.example.com 的脚本,故意显示不匹配;这不是可直接上线的配置。

这款 CSP 响应头生成器把原始文本与指令编辑放在同一份草稿里。它也能做 CSP 策略检查,但不会把复杂部署问题压成一个看似权威的安全分数。

为什么用 CSP 生成器

看见真正参与匹配的来源

CSP 生成器会按资源类型查找生效指令,并在需要时使用 default-src 回退。示例中的 CDN 脚本被 script-src self 拒绝;添加准确的 CDN 来源后,这一次静态试算才会改为匹配。

CDN 脚本请求与策略来源列表相比较,分别显示不匹配和匹配的路径。

把风险指向具体指令

Content-Security-Policy 生成器会提示 none 混用和重复指令的实际效果:混用时 none 无效,重复时浏览器取第一条。每条说明都留在策略旁边,Report-Only 的观察行为也与强制阻断分开解释。

策略指令拆分为逐条提示卡片,强制模式与仅报告模式清楚分开。

复制之前先读懂结果

01

从故意不匹配的示例开始

页面是 example.com,脚本来自 cdn.example.com。查看生效的 script-src 与回退标记,再换成自己的页面和资源地址;示例拒绝不等于你的站点也会被拒绝。

02

区分响应头模式与 nonce 样本

Report-Only 只更改输出响应头名称,不会阻断请求;没有 report-to 或 report-uri 时也没有报告目标。nonce 按钮生成的是一次性演示值,不会写进草稿。

03

留意结果是否过期

自动检查在修改后等待 350 毫秒;关闭后可点检查按钮或按 Ctrl/Cmd + Enter。策略或请求参数一变,导出立即禁用。清空和载入示例会先预览,并可撤销一次。

策略工作台会检查什么

文本和指令两种视图

CSP 生成器接受裸策略值或完整单条 CSP 响应头。指令编辑器与文本操作同一份草稿,未知指令和重复顺序保留;语法错误时原文仍在,可直接修正。

指出宽松与冲突来源

CSP 策略检查会指出 unsafe-inline、unsafe-eval、通配符、过宽协议、缺少关键指令和 none 混用。它不会自动删除这些来源,因为现有脚本与样式可能因此失效。

试算单个外部请求

输入页面与资源的 HTTP(S) 地址后,来源匹配会给出具体指令和回退链。遇到路径来源、strict-dynamic 或 nonce 上下文时显示无法判定,不把猜测写成绿色通过。

只导出当前响应头

格式化结果保留指令顺序,按选择输出 Content-Security-Policy 或 Report-Only。策略或示例请求有任何改动,复制与下载都会禁用,直到新结果生成。

静态检查不能证明什么

不扫描真实网站
这款内容安全策略工具不会抓取站点、资源或线上响应头。它只检查粘贴的一条策略;没有提示不代表部署后的页面安全或功能正常。
回退范围有限
default-src 只回退到缺失的资源加载指令,不回退到 base-uri、form-action 或 frame-ancestors。多条策略、重定向、内联代码和不同浏览器版本不在这次试算内。
nonce 示例不能直接部署
浏览器里显示的是随机演示值。服务器必须每次响应都换新 nonce,并把同一值放进响应头和获准的标签;工具不会把固定值插入草稿。
仅报告模式需要端点
Content-Security-Policy-Report-Only 只观察违规,不阻断加载。report-to 名称还需与实际部署的 Reporting-Endpoints 响应头配合;本页不接收报告。
不生成等价 meta 或服务器配置
meta 标签不能承载 Report-Only 和 frame-ancestors 等全部指令。本页只导出 HTTP 响应头文本,不代写 Nginx、Apache 或框架配置。

CSP 生成器常见问题

生成的 CSP 字符串可以直接用吗?

不能把示例当成通用生产配置。先替换页面和资源地址,阅读逐条提示,再用真实响应头和浏览器流量验收;这页不知道你的站点实际加载了什么。

为什么勾选 unsafe-inline 会有警告?

它可能允许被注入的内联脚本或样式。nonce、哈希和浏览器版本会影响实际效果,所以提示用于人工复核,不是自动修复命令。

none 和其他来源同时勾选会怎样?

按 CSP3 规范,none 与其他来源混用时自身无效,其他来源仍可匹配。工具会提示这一点,而不会误判为全部拒绝。

工具会检查我填的自定义域名是否正确吗?

只做输入字符串和单个 HTTP(S) 请求的静态比较,不查询 DNS、不抓取网站,也不保证域名可用。带路径的来源会标为无法静态判定。

Report-Only 和强制模式有什么区别?

强制响应头可以阻断不匹配的资源;Report-Only 只观察可能的违规。要收到远端报告,还需要正确部署报告端点。

还想核对其他情况?

用 CSP 生成器检查草稿

先比较一个资源 URL,再看生效来源和逐条提示;确认结果是最新的后才复制响应头。