当前位置: 首页 > 科技观察

Google Chrome 改变缓存机制 阻止此前广告商对其滥用

时间:2023-03-15 08:37:47 科技观察

GoogleChrome更改缓存机制以阻止广告商滥用此Chrome浏览器组件称为HTTP缓存或共享缓存,它通过保留网页上加载的资源副本(例如图像、CSS文件和JavaScript文件)来工作。这个想法是,当用户再次访问同一个网站或访问另一个使用相同文件的网站时,Chrome将从其内部缓存中加载这些文件,而不是浪费时间重新下载每个文件。这个组件不仅存在于Chrome中,而且自互联网早期以来所有的网络浏览器都存在,作为一种带宽节省功能。缓存系统通常在所有浏览器中以相同的方式工作。保存在缓存中的每个图像、CSS或JS文件都会收到一个存储密钥,通常是资源的URL。例如,一张图片的存储键就是图片URL本身:https://x.example/doge.png,当浏览器加载新页面时,会在其内部缓存数据库中搜索这个键(URL),并查看是否需要从缓存中下载或加载图像。不幸的是,多年来,在线广告和分析公司已经意识到此功能也可能被滥用来跟踪用户。检测用户是否访问过特定网站。商业竞争者可以通过检查缓存中是否存在可能属于特定网站或特定网站组的资源来检测用户的浏览历史。缓存也可用于存储类似于cookie的标识符,作为一种跨站点跟踪机制。但随着本周早些时候Chrome86的发布,谷歌对这一机制进行了重要更改。此功能称为“缓存分区”,它的工作原理是根据两个附加因素更改资源在HTTP缓存中的保存方式。从现在开始,资源的存储密钥将包含三个项目而不是一个。顶级网站域名(http://a.example)资源当前框架(http://c.example)资源URL(https://x.example/doge.png)通过了缓存预加载检查过程通过向Chrome添加额外的密钥,Chrome有效地阻止了过去对其缓存机制的所有攻击,因为大多数网站组件将只能访问自己的资源,而无法检查他们没有访问的资源创造。但是,在某些场景下,缓存可能会重叠,但攻击面却比以前小了很多。自2019年9月发布的Chrome77以来,谷歌一直在测试缓存分区,并表示新系统不会对用户或开发者产生任何影响。唯一会看到变化的是网站所有者,他们最有可能观察到网络流量增加了大约4%。缓存分区目前仅在Chrome浏览器中处于活动状态,但其他基于Chromium开源代码的浏览器也可用,所有这些浏览器也很可能在未来几个月内部署它。其中包括Edge、Brave、Opera、Vivaldi等。Mozilla也宣布了一个类似的计划来实施Chrome的缓存分区机制,但没有确定何时在Firefox中可用。另一家主要浏览器供应商苹果公司自2019年初以来一直在使用有限的缓存分区系统。然而,Safari的缓存分区系统仅使用两项检查(#1和#3),而不是Chrome更彻底的三项检查。