安全 · 排查路径

常见安全响应头的部署顺序

安全响应头需要与内容加载和嵌入配置一起部署;错误的值或顺序会破坏正常功能。

排查步骤

查看、判断、复查

  1. 01

    先记录当前响应头,区分框架、托管平台和应用配置分别添加的字段。

  2. 02

    部署 CSP 时可先使用 Content-Security-Policy-Report-Only 收集影响;确认来源清单和报告端点后再决定是否强制执行。

  3. 03

    检查 HSTS preload 资格与 includeSubDomains 的范围,避免影响未准备好的子域。

  4. 04

    每增加一个 header 后回归测试核心页面,确认没有破坏脚本加载、字体来源或 iframe 嵌入。

跟着示例核对

示例内容用于说明方法,非本站探测记录。复核于 2026-10-03。

模拟记录,非本站探测;2026-10-03 09:00 +08:00,浏览器 A,页面 https://app.example.com/
页面需要:https://assets.example.com/app.js
A 观察配置:Content-Security-Policy-Report-Only: script-src 'self'; report-to csp
Reporting-Endpoints: csp="https://app.example.com/csp-report"(示例端点)
A 观察:报告指出脚本来源不在允许范围,页面功能仍可执行
B 强制配置:Content-Security-Policy: script-src 'self'
B 观察:Console 指出脚本被阻止,登录按钮无响应
其他 CSP 响应头及客户端兼容性:待核对

怎样解释结果

A 的 Report-Only 用于观察此策略违规,不强制阻止加载。B 的强制策略只允许同源脚本,模拟依赖位于另一个来源,脚本被阻止与登录失效需要一起核对。HTTP 200 不能代替关键操作验收;多条强制策略并存时也要逐条核查。

不符合预期时

核对实际响应中的所有 CSP、Console 和必要资源来源;先确认脚本确实可信且必要,再评估受限来源或 nonce/hash 方案。不要为恢复功能直接放开全部来源。报告端点必须真实接入并检查报告的数据范围,示例端点不能直接当成可用服务;HSTS 与子域范围应另行评估。

修改后复查

在同一浏览器与版本中验证登录、表单、字体和嵌入流程;核对实际头与违规记录,再逐步启用强制策略。关键操作仍失效时停止扩大发布,按已保存的配置回退并复查;报告缺失时记录采集条件未知,不写成没有违规。