成为赞助商——支持中文 Agent 生态

了解赞助
库Agent场景库
← 返回用例列表

CSP 违规与 Report-Only 调优清单

按 fetch 指令、Report-Only 试跑与 report-to/report-uri 上报,生成 CSP 违规分诊与上线前调优清单;不代改生产响应头。

场景说明

面向独立开发者与内容站点:把「上了 CSP 页面空白」写成可回滚的调优步骤,区别于混合内容或 SRI 哈希不匹配。

案例叙事

01他们做了什么

活动页一加 CSP,统计脚本与编辑器内联脚本全灭——不是「安全变强了」,是没先在 Report-Only 把违规练出来。

MDN《Content Security Policy (CSP)》说明:CSP 是站点向浏览器下发的一系列指令,限制页面代码可做之事;主要用例是控制文档允许加载的资源(尤其 JavaScript),作为 XSS 防御。可通过所有响应上的 `Content-Security-Policy` 响应头下发(不只主文档),也可用 `<meta http-equiv>`(对某些 CSR SPA 有用)。策略含 fetch 指令:如 script-src、style-src、img-src;`default-src` 为未显式列出的资源类型提供回退。可用 Report-Only 模式:不强制执行但把违规送到上报端点,也可用 `Content-Security-Policy-Report-Only` 测试未来策略而不真正部署。推荐用 Reporting API:在 Reporting-Endpoints 声明端点,并用 `report-to` 指定 CSP 上报目标;旧的 `report-uri` 仍可用但已弃用,在浏览器普及前可两者都声明。CSP 不是输入消毒的替代,应消毒并设置 CSP 做纵深防御;可限制外链脚本、内联脚本、事件处理器、`javascript:` URL 与 `eval` 等危险 API。本场景据此输出违规分诊与调优清单。禁止声称「XSS 已根除」。

02实际效果

  • 源未披露量化「Report-Only 观察几天可 enforce」;公开文只描述指令、Report-Only 与上报方式。
  • 上线门禁可勾选,减少「周五直接 enforce 导致白屏」。
  • 与混合内容/SRI 问题可分流处理。

03值得知道

  • 各浏览器对 report-to / 指令支持度不同,以兼容表为准。
  • meta 方式无法使用某些仅响应头可用的能力,需对照文档。
  • 上面写的是文档机制说明,不是你的站点违规统计。

04可复制提示词

CSP Report-Only 调优清单

你是 CSP 调优助手。只根据策略与违规样例给清单,不要编造已切换 enforce。

当前策略:{{csp_policy}}
违规报告样例:{{violations}}
第三方脚本列表:{{third_parties}}

输出 Markdown:
1. 可能撞到的指令(default-src/script-src 等)
2. Report-Only 观察项与上报(report-to/report-uri)提醒
3. 上 enforce 前门禁
4. 与消毒/SRI/混合内容的边界
禁止代改生产头;禁止索要服务器权限。

CSP 导致白屏复盘提纲

启用 CSP 后页面功能异常,请写复盘提纲。

现象:{{symptom}}
策略与控制台:{{evidence}}
时间线:{{timeline}}

输出:
1. 根因分层
2. 临时缓解(Report-Only、放宽指令)仅建议
3. 证据
4. 防再发
不要伪造「零违规」。

05一手来源

怎么做

  1. 粘贴当前 CSP/Report-Only 头、违规报告样例与第三方脚本列表
  2. Agent 输出:威胁模型提醒、default-src/script-src 提问、Report-Only 观察项、上报端点注意
  3. 人工改网关/元标签;Agent 不代发生产头

实用提示

  • 先 Content-Security-Policy-Report-Only 看违规再 enforce;CSP 不能替代输入消毒
  • 与 browser-mixed-content-https-triage / browser-sri-hash-mismatch-triage 不同:本条是 CSP 指令与违规上报调优
#CSP#XSS#Content-Security-Policy#Report-Only#前端安全