前端安全之跨域隔离
跨域隔离
要选择跨域隔离状态,您需要在主文档上发送以下HTTP标头:
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Opener-Policy (COOP)
Cross-Origin-Opener-Policy (COOP)响应头允许您确保顶级文档不会与跨源文档共享浏览上下文组。
COOP将处理隔离您的文档,如果潜在攻击者在弹出窗口中打开它,则无法访问您的全局对象,从而防止一组称为XS Leaks的跨源攻击。
如果在新窗口中打开带有COOP的跨源文档,则打开的文档将没有对它的引用,并且 window.opener的属性将为null。这使您能够比rel=noopener对窗口的引用有更多的控制,rel=noopener只影响传出导航。
语法
Cross-Origin-Opener-Policy: unsafe-none | same-origin-allow-popups | same-origin
- unsafe-none:这是默认值。允许将文档添加到其打开程序的浏览上下文组中,除非打开程序本身具有
same-origin
或same-origin-allow-popups.
。 - same-origin-allow-popups:保留对新打开的窗口或选项卡的引用,这些窗口或选项卡要么不设置COOP,要么通过将COOP设置为unsafe none而选择退出隔离。
- same-origin: 将浏览上下文专门隔离到相同的源文档。跨源文档不会在同一浏览上下文中加载。
Cross-Origin-Embedder-Policy (COEP)
响应头阻止文档加载任何未显式授予文档权限的跨源资源(使用 CORP 或者 CORS).
语法
Cross-Origin-Embedder-Policy: unsafe-none | require-corp
- unsafe-none:这是默认值。允许文档获取跨源资源,而无需通过CORS协议或
Cross-Origin-Resource-Policy
头授予显式权限。 - require-corp: 文档只能从同一来源加载资源,或显式标记为可从另一来源加载的资源。如果跨源资源支持CORS,则必须使用
crossorigin
属性或Cross-Origin-Resource-Policy
头来加载它,而不会被COEP阻止。
Cross-Origin Resource Policy (CORP)
Cross-Origin-Resource-Policy
响应头传达了这样一种愿望:浏览器不阻止对给定资源的cors跨源/跨站点请求。
语法
Cross-Origin-Resource-Policy: same-site | same-origin | cross-origin
- same-site:只有来自同一站点的请求才能读取资源。
- same-origin:只有来自同一来源(即scheme+host+port)的请求才能读取资源。
- cross-origin:来自任何来源(同一站点和跨站点)的请求都可以读取资源。
Cross-origin read blocking(CORB)
Cross-origin read blocking(Cross-origin read blocking,又称CORB)是一种算法,它识别可疑的跨源资源获取(例如,在img元素中呈现JSON一样失败的获取),并在它们到达web页面之前阻止它们。CORB通过使敏感数据远离跨源web页面,降低了泄漏敏感数据的风险。
附录:术语说明
参考:
本站文章除注明转载外,均为原创文章。转载请注明:文章转载自:
葱爆GIS—刘博方GIS博客(
https://liubf.com )