CSP分析器

分析任何URL的内容安全策略(CSP)及内容安全策略仅报告模式。检测风险指令(不安全内联、通配符)、缺失的随机数/哈希策略、已弃用模式,并提供可操作建议以强化XSS防御。支持重定向、原始头部检查、筛选、发现结果及JSON/PDF导出。

Loading…

关于 CSP分析器

粘贴URL以检查其CSP头部,快速查看策略是否真正保护您免受XSS和注入攻击。本分析器高亮危险许可(如不安全内联或宽泛通配符),解释缺失内容(随机数/哈希策略、框架限制),并帮助您安全使用仅报告模式,迈向实用、可部署的CSP。

功能特点

  • 检测并解释内容安全策略及内容安全策略仅报告头部。
  • 标记常见CSP陷阱:不安全内联、不安全评估、宽泛通配符及过度宽松的来源。
  • 通过随机数和基于哈希的策略,为更安全的脚本/样式执行提供指导。
  • 识别实际强化中常缺失的重要指令(如框架祖先、对象来源、基础URI)。
  • 仅报告模式洞察:了解哪些内容会被阻止,以及如何在不影响生产环境的情况下部署CSP。
  • 跟踪重定向(最多10次),分析浏览器最终应用的响应策略。
  • 原始头部视图,用于精确服务器输出和调试。
  • 发现结果 + 评分卡,支持“仅显示问题”筛选。
  • 将分析导出为JSON或PDF,用于审计、工单和安全审查。
  • 包含已弃用头部识别,以捕获遗留策略和迁移需求。

🧭 使用指南 for csp-analyzer

1

输入待分析URL

粘贴您要检查的页面URL(通常是您的主页或应用外壳)。

2

根据需要启用重定向跟踪

保持“跟踪重定向”启用,以便分析器到达最终返回真实CSP的HTTPS/www/本地化目标。

3

查看评分卡和发现结果

从发现结果开始,识别关键风险(不安全内联、通配符、缺失限制),并了解哪些指令影响评分。

4

调试时检查原始头部

开启“显示原始头部”,以验证确切的头部名称/值(当存在多个CSP头部或代理/CDN修改它们时非常有用)。

5

为安全流程导出报告

下载JSON用于自动化,或下载PDF用于安全审计和工程工单。

技术规格

请求模型

本工具执行URL头部检查,专注于安全头部分析,包括CSP和仅报告策略。

设置行为默认值
跟随重定向跟随重定向链以分析最终URL返回的有效策略已启用
最大重定向次数重定向上限以防止循环10
超时请求超时限制15000 毫秒
用户代理标识请求的用户代理Encode64Bot/1.0 (+https://encode64.com)
私有网络出于安全考虑,阻止访问私有网络范围已禁用(不允许私有网络)

检查的CSP头部

分析器会检查强制执行和非强制执行策略,并以可读形式呈现。

头部含义
Content-Security-Policy浏览器应用的强制执行策略
Content-Security-Policy-Report-Only报告违规行为的非阻塞策略(适用于部署和调整)
网站可能发送多个CSP头部。浏览器应用的组合/优先级规则可能很复杂——原始头部有助于确认实际发送的内容。

分析关注点

发现结果基于实用的CSP强化检查和常见部署错误。

领域发现示例
脚本策略强度unsafe-inline / unsafe-eval 使用情况、通配符源、缺少nonce/hash策略
样式策略强度unsafe-inline 样式、源范围过宽、在可行情况下缺少向nonce/hash迁移的路径
框架和点击劫持防护缺少或薄弱的框架限制(通常通过frame-ancestors)
遗留/已弃用模式应进行现代化的旧指令或模式
部署就绪度仅报告模式的存在及报告端点可见性

命令行

使用这些命令快速检查CSP头部。它们对于验证分析器报告非常有用。

macOS / Linux

获取响应头部(查找CSP)

curl -I https://example.com

检查响应头部中的Content-Security-Policy和Content-Security-Policy-Report-Only。

检查头部时跟随重定向

curl -IL https://example.com

确保看到最终目的地(HTTPS、www、应用外壳路由)的CSP头部。

仅显示CSP头部(不区分大小写匹配)

curl -I https://example.com | grep -i "content-security-policy"

快速从完整头部集合中分离出CSP和仅报告头部。

Windows (PowerShell)

检查CSP头部

$r = Invoke-WebRequest -Uri https://example.com -Method Head; $r.Headers['Content-Security-Policy']; $r.Headers['Content-Security-Policy-Report-Only']

如果存在,则显示强制执行和仅报告的CSP头部。

首先以仅报告模式部署新策略,审查违规报告,然后收紧并强制执行。对于现代应用,CSP调整是一个迭代过程。

使用场景

强化网站以防御XSS

使用CSP通过限制脚本/样式加载来源以及处理内联代码的方式来减少注入漏洞的影响。

  • 识别unsafe-inline/unsafe-eval并规划迁移至nonce/hash
  • 将script-src/style-src来源限制为受信任的源
  • 添加缺失的防御性指令(base-uri、object-src、frame-ancestors)

使用仅报告模式安全地推出CSP

通过从Content-Security-Policy-Report-Only开始并迭代处理违规,逐步引入CSP而不影响生产环境。

  • 检测仅报告策略的存在
  • 在强制执行前了解哪些内容会被阻止
  • 导出报告用于您的推出计划和工单

调试损坏的脚本、iframe或第三方小部件

过于严格的CSP可能会阻止分析工具、嵌入内容或API连接。使用分析器查看策略允许的内容以及您可能需要明确指定的来源。

  • 确认允许的脚本/图片/连接/框架来源
  • 检测作为快速修复添加的过于宽泛的通配符
  • 用目标域名替换宽泛的允许项

安全审查 / 合规性证据

为安全审查、客户问卷或内部合规性生成当前CSP态势的一致性报告。

  • 下载JSON以追踪随时间变化
  • 下载PDF用于审计工件和分享

❓ Frequently Asked Questions

什么是CSP,它能防范什么?

内容安全策略(CSP)是一种由浏览器强制执行的安全层,用于限制资源加载来源以及脚本/样式的执行方式。它主要用于减轻跨站脚本(XSS)和注入攻击的影响。

CSP和CSP仅报告模式有什么区别?

内容安全策略(Content-Security-Policy)是强制执行的(可以阻止违规)。内容安全策略仅报告模式(Content-Security-Policy-Report-Only)不会阻止,而是报告违规行为,以便您在强制执行前调整策略。

为什么unsafe-inline被认为是危险的?

unsafe-inline允许内联脚本/样式,这会削弱CSP阻止注入代码的能力。更安全的方法是使用随机数(nonce)或哈希值,仅允许已知的内联代码块,同时仍能阻止意外的注入。

我需要使用随机数(nonce)或哈希值吗?

如果您的应用使用内联脚本或样式,随机数/哈希值是保持CSP有效且不破坏功能的现代方法。它们允许特定的内联代码块,同时防止任意注入。

CDN或代理会更改我的CSP标头吗?

会。边缘层可以添加、合并或覆盖标头。如果发现不一致,请启用原始标头并跟踪重定向,以验证最终的响应标头。

CSP能替代修复XSS漏洞吗?

不能。CSP是一种纵深防御措施。您仍然需要适当的输出编码、安全的模板和输入验证。CSP的作用是在有漏洞被利用时减小影响范围。

在此处粘贴URL安全吗?

本工具会向提供的URL发起服务器端请求,并阻止访问私有网络目标。请避免在URL中包含机密信息(如查询字符串中的令牌),并优先使用您信任的公开URL。

Pro Tips

Best Practice

从内容安全策略仅报告模式开始,收集违规报告,然后收紧策略并强制执行。对于实际应用,CSP的实施是一个迭代过程。

Best Practice

用随机数或哈希策略替换unsafe-inline。保持策略明确且最小化。

Best Practice

添加frame-ancestors指令以减少点击劫持风险,避免仅依赖旧版标头。

Best Practice

避免使用宽泛的通配符作为快速修复。优先为脚本/图片/连接指定具体域名,并审查第三方需求。

Best Practice

导出JSON报告并在CI中追踪CSP变更,以便在CDN/应用更新修改标头时发现回归问题。

Additional Resources

Other Tools