---

title: "COEP 模式对比:require-corp 与 credentialless 的选择"

keywords:

  • COEP
  • credentialless
  • require-corp
  • CORP
  • COOP
  • CORS

description: "比较 COEP 的两种模式在跨源子资源嵌入上的行为差异,解释 credentialless 的匿名请求与部署便捷性,并给出与 COOP/CORP 的协作与灰度策略。"

categories:

  • 文章资讯
  • 技术教程

---

概述

跨源隔离需要 COOP+COEP。COEP: require-corp 要求无 CORS 的跨源子资源显式通过 CORP 允许嵌入;COEP: credentialless 允许在无 CORP 的情况下以无凭据(不含 Cookie)匿名请求跨源资源,简化部署但可能影响需要凭据的子资源。

行为与差异

  • require-corp:无 CORS 的跨源资源必须设置 Cross-Origin-Resource-Policy: cross-origin 才能嵌入;不需手动调整请求模式以使用凭据[参考4,2]。
  • credentialless:跨源 no-cors 请求以匿名方式发送,不含 Cookie;无需要求第三方配置 CORP,但需要对需要 Cookie 的子资源切换到 CORS(如 <img crossorigin>fetchmode='cors')[参考1,2]。
  • 两者均需配合 COOP: same-origin 启用跨源隔离;COEP 不覆盖已有的 CORP/CORS 限制[参考2,4]。

部署建议

  • 先以 COEP-Report-Only 灰度并使用 Reporting API 收集违规;评估第三方资源对 Cookie 的依赖,必要时改造为 CORS 请求或提供无 Cookie 访问[参考3,1]。
  • 统一启用 COOP: same-origin 并逐步切换 COEP 模式;文档与 Worker 均需覆盖。

参考与验证

  • [参考1]Chrome 文档:COEP: credentialless 行为与部署说明(匿名跨源加载):https://developer.chrome.com/blog/coep-credentialless-origin-trial
  • [参考2]MDN:COEP 响应头与 require-corp/credentialless 用法与与 CORP/CORS 的关系:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy
  • [参考3]安全头系列:COEP 与 Reporting API 的灰度与监控建议:https://andrewlock.net/understanding-security-headers-part-3-cross-origin-embedder-policy/
  • [参考4]web.dev:COOP/COEP 的跨源隔离目标与模式说明(credentialless 概念):https://web.dev/articles/coop-coep
  • [参考5]Chromium 讨论:COEP: credentialless 的实现与 DevTools 支持与指标讨论:https://groups.google.com/a/chromium.org/g/blink-dev/c/Zr9n9_LG7s4/m/4y-b481hBAAJ

关键词校验

关键词与 COEP 模式对比一致。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部