内容安全策略(Content Security Policy,简称CSP)是Web安全领域的重要技术,用于防止跨站脚本(XSS)、数据注入等攻击。通过设置HTTP头 Content-Security-Policy
,开发者可以定义哪些资源(如脚本、样式、图片)可以被加载和执行,从而提升网站安全性。
核心概念
CSP的作用
- 阻止恶意代码通过第三方资源注入
- 限制页面内容的来源,减少攻击面
- 支持动态策略调整(通过
Content-Security-Policy-Report-Only
测试)
常见指令
script-src
:控制脚本加载来源style-src
:限制样式表加载img-src
:定义图片资源范围connect-src
:规范API请求地址sandbox
:启用沙箱模式增强安全
策略类型
- 非报告模式:直接阻止违规内容
- 报告模式:仅记录违规行为,不阻止
- 非报告模式:直接阻止违规内容
实践指南
启用CSP
Content-Security-Policy: default-src 'self'; script-src 'unsafe-inline' https://trusted-cdn.com
注意:生产环境建议禁用
'unsafe-inline'
以避免安全风险处理兼容性
- 使用
Content-Security-Policy-Report-Only
测试策略 - 通过
Violation-Report-Endpoint
收集违规数据
- 使用
高级功能
nonce-<值>
:为单个资源生成一次性随机值hash-<值>
:基于资源内容哈希值授权report-uri
:指定违规报告地址
扩展阅读
如需深入了解CSP实践,可参考本站的 CSP实践指南 获取具体案例与代码示例。