CSP 分析器
粘贴一个 Content-Security-Policy 请求头的值,即可用通俗易懂的语言看到每条指令的解释,并按严重程度标记出每处风险——全部在你的浏览器中完成。
这款 CSP 分析器完全在你的浏览器中解析你的 Content-Security-Policy 并为其评分。你粘贴的请求头值绝不会离开你的设备,也不会有任何内容上传到 ArrayKit。
打开 CSP 请求头生成器
关于 CSP 分析器
这款 CSP 分析器接收一个 Content-Security-Policy 请求头的值,并把它拆解成一张逐指令的表格,用通俗易懂的语言解释每条指令控制什么。随后它会审计策略,找出那些会悄悄让 CSP 失效的弱点:脚本源中的 'unsafe-inline' 和 'unsafe-eval'、裸的 '*' 通配符、不安全的 http: 源、过于宽泛的 data: 方案,以及缺失的加固项,如 default-src、object-src 'none'、frame-ancestors 和 base-uri。每处发现都带有严重程度,让你一眼看出某条策略是收紧的还是有漏洞的。当你在加固网站、审查框架为你生成的策略,或调试为什么一条仅报告模式的 CSP 仍允许内联脚本时,它都很有用。一切都在你的设备上解析和评分——你粘贴的请求头绝不会被上传。
功能特性
- 把任意 Content-Security-Policy 值解析成一张干净的逐指令表格
- 用通俗语言解释每条指令(script-src、frame-ancestors、base-uri……)
- 将脚本源中的 'unsafe-inline' 和 'unsafe-eval' 标记为高风险
- 检测裸的 '*' 通配符和不安全的 http: 源
- 对缺失的 default-src、object-src 'none'、frame-ancestors 和 base-uri 发出警告
- 为每处发现分配严重程度(高 / 中 / 低 / OK)
- 接受带或不带「Content-Security-Policy:」请求头名称的输入
- 完全在你的浏览器中运行——你粘贴的策略绝不会离开你的设备
如何使用 CSP 分析器
- 从你的服务器配置或响应头中复制 Content-Security-Policy 请求头的值
- 把它粘贴进分析器(开头的请求头名称是可选的)
- 查看逐指令表格,确认每条指令允许什么
- 从最严重的开始逐条处理发现,收紧被标记的指令
示例
输入
default-src 'self'; script-src 'self' 'unsafe-inline'; object-src 'none'
输出
HIGH script-src 'unsafe-inline' permits inline scripts
MED frame-ancestors missing — page can be framed (clickjacking)
OK object-src 'none' blocks plugins (recommended)
分析器把 unsafe-inline 标记为高,指出缺失的 frame-ancestors,并确认 object-src 'none'。
常见错误与故障排除
- 策略有 script-src 'self',但内联脚本仍在运行。 — 检查 script-src(或作为其回退的 default-src)中是否有 'unsafe-inline'。移除它,改用 nonce 或 hash,让只有你的内联块才能执行。
- 分析器警告说 default-src 缺失。 — default-src 是大多数 fetch 指令的回退。没有它,任何你没有显式列出的指令都不受限制——请添加 default-src 'self' 或 'none'。
- 尽管设置了 X-Frame-Options,frame-ancestors 仍被标记。 — 现代浏览器更倾向于 frame-ancestors 而非 X-Frame-Options。请向 CSP 添加 frame-ancestors 'self' 或 'none',让框架嵌入由策略控制。
- 某个源中的通配符 '*' 被报告为风险。 — '*' 允许来自任何源的内容,使该指令失去意义。请把它替换为你实际加载的具体 https:// 主机。
常见问题
- CSP 分析器会检查什么?
- 它会解析每条指令,解释它控制什么,并标记常见弱点:脚本源中的 'unsafe-inline' 和 'unsafe-eval'、裸的 '*' 通配符、不安全的 http: 源、过于宽泛的 data: 方案,以及缺失的 default-src、object-src 'none'、frame-ancestors 和 base-uri。
- 为什么 'unsafe-inline' 被标记为高风险?
- 'unsafe-inline' 允许内联 <script> 块和事件处理器属性运行,而这正是 CSP 本应阻止的注入途径。它实际上让 script-src 形同虚设,因此分析器把它当作高严重度的发现,并建议改用 nonce 或 hash。
- 我需要包含「Content-Security-Policy:」请求头名称吗?
- 不需要。你可以粘贴完整的请求头行,或仅粘贴策略值。分析器在解析前会自动去掉开头的「Content-Security-Policy:」或「Content-Security-Policy-Report-Only:」前缀。
- 为什么分析器会对缺失的 frame-ancestors 发出警告?
- 没有 frame-ancestors,任何网站都能把你的页面嵌入 iframe,从而实施点击劫持。frame-ancestors 是 X-Frame-Options 的现代替代品,因此分析器建议添加 frame-ancestors 'self' 或 'none'。
- 它会校验我的策略在语法上完全正确吗?
- 它关注的是安全态势,而非严格的语法。它能处理浏览器接受的常见形态——分号分隔的指令、空格分隔的源——并指出有风险的源和缺失的加固项,而不是对空白字符吹毛求疵。
- 我粘贴的 CSP 请求头会被发送到任何地方吗?
- 不会。CSP 分析器完全在你的浏览器中解析并为策略评分。你粘贴的请求头值保留在你的设备上,绝不会上传到 ArrayKit。
相关工具
全部 ArrayKit 工具