CSP分析器
分析任何URL的内容安全策略(CSP)及内容安全策略仅报告模式。检测风险指令(不安全内联、通配符)、缺失的随机数/哈希策略、已弃用模式,并提供可操作建议以强化XSS防御。支持重定向、原始头部检查、筛选、发现结果及JSON/PDF导出。
功能特点
- 检测并解释内容安全策略及内容安全策略仅报告头部。
- 标记常见CSP陷阱:不安全内联、不安全评估、宽泛通配符及过度宽松的来源。
- 通过随机数和基于哈希的策略,为更安全的脚本/样式执行提供指导。
- 识别实际强化中常缺失的重要指令(如框架祖先、对象来源、基础URI)。
- 仅报告模式洞察:了解哪些内容会被阻止,以及如何在不影响生产环境的情况下部署CSP。
- 跟踪重定向(最多10次),分析浏览器最终应用的响应策略。
- 原始头部视图,用于精确服务器输出和调试。
- 发现结果 + 评分卡,支持“仅显示问题”筛选。
- 将分析导出为JSON或PDF,用于审计、工单和安全审查。
- 包含已弃用头部识别,以捕获遗留策略和迁移需求。
🧭 使用指南 for csp-analyzer
输入待分析URL
粘贴您要检查的页面URL(通常是您的主页或应用外壳)。
根据需要启用重定向跟踪
保持“跟踪重定向”启用,以便分析器到达最终返回真实CSP的HTTPS/www/本地化目标。
查看评分卡和发现结果
从发现结果开始,识别关键风险(不安全内联、通配符、缺失限制),并了解哪些指令影响评分。
调试时检查原始头部
开启“显示原始头部”,以验证确切的头部名称/值(当存在多个CSP头部或代理/CDN修改它们时非常有用)。
为安全流程导出报告
下载JSON用于自动化,或下载PDF用于安全审计和工程工单。
技术规格
请求模型
本工具执行URL头部检查,专注于安全头部分析,包括CSP和仅报告策略。
| 设置 | 行为 | 默认值 |
|---|---|---|
| 跟随重定向 | 跟随重定向链以分析最终URL返回的有效策略 | 已启用 |
| 最大重定向次数 | 重定向上限以防止循环 | 10 |
| 超时 | 请求超时限制 | 15000 毫秒 |
| 用户代理 | 标识请求的用户代理 | Encode64Bot/1.0 (+https://encode64.com) |
| 私有网络 | 出于安全考虑,阻止访问私有网络范围 | 已禁用(不允许私有网络) |
检查的CSP头部
分析器会检查强制执行和非强制执行策略,并以可读形式呈现。
| 头部 | 含义 |
|---|---|
| Content-Security-Policy | 浏览器应用的强制执行策略 |
| Content-Security-Policy-Report-Only | 报告违规行为的非阻塞策略(适用于部署和调整) |
分析关注点
发现结果基于实用的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头部。
使用场景
强化网站以防御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和CSP仅报告模式有什么区别?
❓为什么unsafe-inline被认为是危险的?
❓我需要使用随机数(nonce)或哈希值吗?
❓CDN或代理会更改我的CSP标头吗?
❓CSP能替代修复XSS漏洞吗?
❓在此处粘贴URL安全吗?
Pro Tips
从内容安全策略仅报告模式开始,收集违规报告,然后收紧策略并强制执行。对于实际应用,CSP的实施是一个迭代过程。
用随机数或哈希策略替换unsafe-inline。保持策略明确且最小化。
添加frame-ancestors指令以减少点击劫持风险,避免仅依赖旧版标头。
避免使用宽泛的通配符作为快速修复。优先为脚本/图片/连接指定具体域名,并审查第三方需求。
导出JSON报告并在CI中追踪CSP变更,以便在CDN/应用更新修改标头时发现回归问题。
Additional Resources
Other Tools
- CSS 美化器
- HTML 美化器
- JavaScript 美化器
- PHP 美化器
- 颜色选择器
- 精灵图提取器
- Base32 二进制编码器
- Base32 解码器
- Base32 编码器
- Base58 二进制编码器
- Base58 解码器
- Base58 编码器
- Base62 二进制编码器
- Base62 解码器
- Base62 编码器
- Base64 二进制编码器
- Base64 解码器
- Base64 编码器
- 十六进制二进制编码器
- 十六进制解码器
- 十六进制编码器
- C# 格式化器
- CSV 格式化器
- Dockerfile Formatter
- Elm 格式化器
- ENV 格式化器
- Go 格式化器
- GraphQL 格式化器
- HCL 格式化器
- INI 格式化器
- JSON 格式化器
- LaTeX 格式化器
- Markdown 格式化器
- Objective-C 格式化器
- Php Formatter
- Proto 格式化器
- Python 格式化器
- Ruby 格式化器
- Rust 格式化器
- Scala 格式化器
- Shell 脚本格式化器
- SQL 格式化器
- SVG 格式化工具
- Swift 格式化工具
- TOML 格式化工具
- Typescript Formatter
- XML 格式化工具
- YAML 格式化工具
- Yarn 格式化工具
- CSS 压缩器
- Html Minifier
- Javascript Minifier
- JSON 压缩器
- XML 压缩器
- Cache Headers Analyzer
- Cors Checker
- Dns Records Lookup
- HTTP 头部查看器
- Http Status Checker
- Open Graph Meta Checker
- Redirect Chain Viewer
- Robots Txt Tester
- Security Headers Checker
- Security Txt Checker
- Sitemap Url Inspector
- Tls Certificate Checker
- PDF 转文本
- 正则表达式测试器
- 搜索引擎排名检查器
- Whois 查询