SuperAPI AI 工具集

cross-origin-isolation

安全与审计

查看项目

更新于 10-16 06:07

技能介绍

用途

该技能用于在需要跨源隔离(cross-origin isolation)时,指导开发者正确配置 COOP(Cross-Origin-Opener-Policy)、COEP(Cross-Origin-Embedder-Policy)和 CORP(Cross-Origin-Resource-Policy)响应头。跨源隔离能够降低基于 opener 的攻击和 XS-Leak 风险,并且是现代浏览器中启用 SharedArrayBuffer 等强大浏览器功能的必要条件。

主要能力

  • 判断应用是否需要 COOP/COEP 来实现跨源隔离。
  • 审查安全响应头与嵌入资源,确认其是否与跨源隔离兼容。
  • 审计所有跨源脚本、iframe、图片、worker 和字体,确保在启用 COEP 前资源已就绪。
  • 指导为可嵌入资源按需配置 CORS 或 Cross-Origin-Resource-Policy。
  • 验证运行时是否真正进入跨源隔离状态,即 self.crossOriginIsolated === true。
  • 在代码审查中检查服务器响应头、第三方集成、弹窗、worker 和资源响应,标记会阻止隔离或在隔离生效后导致破坏的具体响应或集成。

使用方式

该技能以检查、修复、解释和代码审查的形式提供指导:

  • 检查:审查安全响应头与嵌入资源,判断应用是否需要 COOP/COEP,资源是否兼容 COEP,以及运行时是否真正变为 crossOriginIsolated。
  • 修复:在审计依赖之后才添加 COOP 和 COEP,确保子资源按需使用 CORP 或 CORS,并验证最终文档在浏览器中变为 crossOriginIsolated。
  • 解释:说明 COOP、COEP 和 CORP 如何协同工作、它们防护什么,以及为什么第三方嵌入常常导致部署失败。
  • 代码审查:审查与跨源隔离相关的服务器响应头、第三方集成、弹窗、worker 和资源响应,标记会阻止隔离或在隔离生效后导致破坏的具体响应或集成。

完整的实现细节、代码示例和框架相关指导见 references/rule.md。规则页面:https://frontendchecklist.io/en/rules/security/cross-origin-isolation

适用场景

  • 安全敏感的 Web 应用。
  • 使用 SharedArrayBuffer 的应用。
  • 重度依赖 worker 的应用。
  • 编辑器类应用。
  • 需要跨源隔离的测量功能。

限制

跨源隔离如果部署不慎会破坏现有集成,因此需要有计划地逐步推出,而不是直接复制粘贴一段响应头。第三方嵌入往往是成功部署跨源隔离的主要障碍。