google的chrome浏览器开发人员最近解决了一个安全问题,方法是按网站对浏览器缓存进行分区,而不是将其混在同一个堆当中。chrome工程师josh karlin和shivani sharma解释了统一缓存的问题。自chrome 85发布以来,浏览器会创建特定网站的缓存,其他网站无法与之交互,但不幸的是,这带来了性能上的冲击。
"旧的设计为浏览器打开了侧通道攻击的大门,一个网站可以通过检查缓存中是否有资源来检测另一个网站是否加载了该资源。这听起来是无害的,但它可以用来实现很多恶行,比如发现你的收件箱、通讯录中的内容等等。"
"使用top-frame-site的早期(canary/dev)结果显示,影响并没有担心的那么严重。缓存的命中率下降了大约4%,而且从缓存加载的字节的总体分数只从39.1%下降到37.8%。随着我们向测试版和稳定版的发展,这种情况可能会发生变化,但这似乎是一个令人鼓舞的开端。"。
google正在寻求通过扩大特定站点缓存的大小来缓解这种情况。
"现在,缓存将被分区,看看增加缓存大小是否有助于抵消一些性能影响是有意义的,"sharma在chrome gerrit帖子中说。
google正计划在canary、beta版和dev build用户中做实验,将特定站点的浏览器机会扩大到通常大小的2到3倍之间。这应该会提高缓存命中率,改善加载时间。该测试版本还没有得到批准,但应该很快就会向测试者推出。