当前位置: 首页 > Web前端 > HTML

前端开发跨域读取阻塞

时间:2023-03-28 20:00:23 HTML

平时我们提到跨域问题,相信大家首先会想到CORS(Cross-OriginResourceSharing)。事实上,CORS只是很多跨域访问场景中的安全策略之一,类似的策略有:?COEP:CrossOriginEmbedderPolicy:CrossOriginEmbeddedProgramPolicy?COOP:CrossOriginOpenerPolicy:CrossOriginOpenerPolicy?CORP:CrossOriginResourcePolicy:CrossOriginResourcePolicy?CORB:CrossOriginReadBlocking:跨源读取阻止COEP和COOP。我已经在上一篇文章中介绍了这两个新策略。有兴趣的可以阅读新的跨域攻略:使用COOP和COEP为浏览器打造更安全的前端训练今天给大家介绍的是CORB:CrossOriginReadBlocking(跨源读取阻塞)SiteIsolation互联网是一个非常复杂多样的环境,我们可以在上面做各种各样的事情,有时候我们在上面存钱,有时候在上面看视频,但是你肯定不希望看视频的网站知道你存了多少钱,因此来自不同来源的站点无法在浏览器中相互访问。我们熟悉的另一个名字是:同源策略。但许多恶意网站使用巧妙的方法来绕过此限制,而网站隔离是Chrome中的一项安全功能,它提供了额外的保护层,可以降低此类攻击成功的可能性。它确保来自不同网站的页面始终放在不同的进程中,每个进程都运行在一个沙箱中以限制进程的执行范围。它还会阻止从其他站点接收某些类型的敏感数据的过程。跨域读取阻断即使所有不同来源的页面都在各自独立的进程中,页面仍然可以合法地请求一些跨站资源,比如图片、JavaScript脚本,一些恶意网页可能会通过包含数据的敏感JSON文件的元素:如果没有站点隔离,JSON文件的内容被保存到渲染器进程的内存中,此时渲染器注意到它不是有效的图像格式并且不渲染图像。但是,攻击者随后可以利用诸如Spectre之类的漏洞来读取该内存块。Spectre漏洞我在这篇文章中还介绍了一种新的跨域策略:使用COOP、COEP为浏览器创建更安全的环境攻击者可以使用代替Cross-OriginReadBlocking(CORB)是一项安全功能,可根据进程内存中的MIME类型防止余额内容进入渲染器。让我们来看看CORB是如何工作的。网站可以从服务器请求两种类型的资源:?数据资源,例如HTML、XML或JSON文档?媒体资源,例如图像、JavaScript、CSS或使用CORS标头(例如Access-Control-Allow-Origin)的字体:*,网站能够从自己的来源或其他来源接收数据资源。另一方面,媒体资源可以来自任何来源,即使没有允许的CORS标头。'如果出现以下情况,CORB会阻止渲染器进程接收跨源数据资源(即HTML、XML或JSON):?资源具有X-Content-Type-Options:nosniffHeader?CORS不会明确允许访问资源,如果它是cross-origin如果数据资源没有X-Content-Type-Options:nosniffHeader集,CORB会尝试嗅探响应主体以确定它是HTML、XML还是JSON。这是必需的,因为某些Web服务器配置错误,例如将图像配置为text/html。使用CORB策略为了使我们的网站更加安全,建议所有网站都启用CORB,只需要进行以下操作:?配置正确的Content-Type。(例如,HTML资源设置text/html)。?启用X-Content-Type-Options:nosniff以防止网站进行自动MIME嗅探