内容安全策略(CSP)
字数 728 2025-11-13 14:29:36
内容安全策略(CSP)
-
基础概念
内容安全策略是一种以白名单机制控制网页资源加载的安全标准。它通过HTTP响应头或<meta>标签定义规则,限制页面只能从指定来源加载脚本、样式、图片等资源,从而有效缓解跨站脚本攻击(XSS)和数据注入攻击。 -
核心机制
CSP通过指令体系实现精细控制。常用指令包括:
default-src:为未明确指令设置默认来源script-src:控制JavaScript加载来源style-src:管理CSS样式表来源img-src:限制图像资源路径connect-src:约束XMLHttpRequest等连接目标
每个指令支持多种值类型:域名、协议、'self'(同源)、'none'(完全禁止)等。
- 部署实践
部署过程需遵循渐进原则:
- 初始阶段使用
Content-Security-Policy-Report-Only头仅报告违规行为 - 通过浏览器控制台分析现有资源依赖,逐步构建白名单
- 对动态内容使用
nonce或hash校验,例如允许带特定随机数的内联脚本 - 最终启用完整策略并持续监控违规报告
- 高级特性
现代CSP支持更复杂场景:
- 通过
report-uri指令收集安全异常报告 - 使用
strict-dynamic信任由已验证脚本动态加载的资源 - 配合子资源完整性校验确保外部资源完整性
- 对WebAssembly模块等新型资源进行专门控制
- 演进趋势
CSP标准已迭代至3.0版本,新增特性包括:
- Worker作用域专用策略
- 导航目标限制(prefetch/navigate)
- 与Trusted Types API协同防御DOM XSS
- 对第三方CDN资源提供更细粒度控制