【Chrome web.dev Live 2020总结】第3天第9集:防止信息泄漏
1 简介
COOP:Cross-Origin-Opener-Policy(跨域开放者策略)
COEP:Cross-Origin-Embedder-Policy(跨域嵌入策略)
COOP和COEP是HTTP请求头。可以使网页进入一种特殊状态————“跨域隔离”。在“跨域隔离”状态下,发出请求的站点被认为处于不太危险的状态,并且可以解锁一系列强大的功能,例如:
2 背景
Web的可组合性可以使开发者从不同来源来添加资源从而增强网站的功能性。
但是它的跨域性质同时也增加了网站用户信息泄露的风险,恶意方可以利用这种情况泄露用户的信息。同源策略解决了这类的风险问题,它可以限制不同来源的资源的文档和网页之间的交互。
直到Spectre(幽灵)漏洞的出现,Spectre是CPU中发现的漏洞,该漏洞使恶意网站能够跨越源边界读取内存和内容。
这个漏洞可以通过一些特性来利用,这些特性可以充当高精度的计时器。这会使一个浏览上下文组中共享的跨域资源处于危险之中,即使他们收到同源策略的保护,幽灵攻击也可以绕开边界来进行攻击。
3 解决方案
cross-origin isloated是通过将资源隔离到单独的浏览上下文组中,所有的跨域资源拥有资源的服务器明确审核。如果拥有资源的服务器未接受审查,则数据永远不会进入攻击者的浏览器上下文,因此他们也不会受到Specture攻击的影响,这个就被称为跨域隔离状态,也是COOP和COEP的核心。
在跨域隔离的状态下,发出的请求的站点被认为不太危险,并且可以解锁强大的功能,例如SharedArrayBuffer、performance.measureMemory和JS Self-Profiling API。
4 如何启用跨域隔离
设置“Cross-Original-Opener-Policy”为same-origin
确保跨域资源的使用:跨域(无法控制的资源,但是支持跨域)或者跨域资源共享(获得子域资源)
设置“Cross-Origin-Embedder-Policy-Report-Only”(推荐)为require-corp
页面加载COOP和COEP后,此时处于“跨域隔离”状态。
- 点赞
- 收藏
- 关注作者
评论(0)