前端知库

CSP 的 nonce、hash 与 Report-Only 如何使用?

参考答案

CSP 通过响应策略限制允许加载或执行的资源,降低部分内容注入风险。nonce 为符合策略的脚本提供一次响应相关的许可,hash 则根据脚本内容识别允许的片段。

nonce 需要不可预测并按响应正确生成,不能长期使用固定公开字符串。宽泛允许来源或启用 unsafe-inline 等选项可能削弱策略。Report-Only 可先收集违规报告再逐步收紧,但它自身不执行拦截。

CSP 不是输入校验和安全 DOM 操作的替代品。部署前要梳理第三方资源、内联脚本和框架要求,并验证回退与报告处理,避免一个策略错误让整个站点的正常功能被阻断。