本文转载自 cnBeta
据外媒Bleeping Computer报道,最近谷歌Chrome浏览器开发团队解决了一个安全问题,Chrome按网站对浏览器缓存进行分区,而不是之前的单一统一缓存。自 Chrome 85 以来,浏览器会创建特定网站的缓存,其他网站无法与之交互。但与此同时,这也造成了一些性能上的冲击。
Google Chrome 的开发人员正在尝试增加浏览器缓存的存储量,以减少由于最近添加的分区缓存功能而导致的性能下降。
Google Chrome 工程师 Josh Karlin 和 Shivani Sharma 在有关缓存分区的文档中解释称,“这就为浏览器打开了侧通道攻击的大门,一个网站可以通过检查缓存中是否有资源来检测另一个网站是否加载了资源。这听起来是无害的,但它可以被用来做很多恶行,比如发现你的收件箱、联系人中的内容等等。”
为了防止这些攻击,Google 在 Chrome 85 中添加了一项新功能,该功能可对浏览器的磁盘缓存进行分区,以便每个站点都利用自己的缓存,而其他站点无法读取该缓存。Google 对此新功能进行了测试发现,其对性能的影响不大,但在安全性方面却影响颇大。
“使用 top-frame-site 的早期(Canary/dev)结果显示,影响并没有担心的那么严重。缓存的命中率下降了大约 4%,但对第一个内容丰富的 paint 的改变在统计学上并不显著,而且从缓存加载的字节的总体分数只从 39.1% 下降到 37.8%。”谷歌工程师表示,“随着我们向测试版和稳定版的发展,这种情况可能会发生变化,但这似乎是一个令人鼓舞的开端。”
图片:Chrome 实验中使用的部分源代码
因此,Google 正在寻求通过扩大特定站点缓存的大小来缓解这种情况。Sharma 在 Chrome Gerrit 帖子中表示:“现在将对缓存进行分区,因此有必要查看增加缓存大小是否有助于通过降低 eviction rate 来抵消某些性能影响。”
Google 正计划在 Canary、Beta 版和 Dev build 用户中做实验,将特定于站点的浏览器机会扩大到通常大小的 2 到 3 倍。这将增加高速缓存命中率并缩短加载时间。
目前,该测试版本还没有得到批准,但应该很快就会面向 Beta 测试人员推出。