Firefox 62将拒绝应用缓存访问HTTP页面
为了与其近来把暴露于全网的功能限制在HTTPS上的声明相符,Firefox已经宣布应用缓存也必须通过HTTPS来提供。对于那些想要离线运行其网站的网站管理员来说,应用缓存(AppCache)可以促进缓存机制。现在,HTTP和HTTPS页面都可以利用它。然而,2018年9月Firefox 62发布后,只有HTTPS页面才可以包括这一功能。换句话说,Firefox已经把应用缓存限制在了安全的环境下。
大多数网站管理员实施应用缓存,不仅是为了离线运行网站,也是为了提高加载速度和减少服务器负载。
背后的原因
如果应用缓存在HTTP网站上运行,它就可能引起一些严重的安全问题。引用Mozilla的话说,这是因为“应用缓存在重新验证其缓存上有诸多局限性,这使得攻击者能够欺骗浏览器,使它从来不列出一张畸形的缓存文件清单,从而来重新验证缓存。”
如果那听起来像是一套晦涩难懂的专业术语,我不会怪你们没有懂。让我用更简单的话来说吧。
当你的浏览器加载一个启用了应用缓存的网站时,它会把网站的数据以缓存的形式存储起来。当涉及验证缓存文件时,应用缓存API有它自己的局限性。因此,当一个用户打开了这样一个网站时,浏览器就会从存储的缓存中提供数据,而不会验证存储的缓存是否是相同的格式。
我希望这个解释能够使你进一步地理解,但还是让我把它说得更明白一点吧。
让我们假设你连接到了一个WiFi网络,一个攻击者也同样进行了连接。如果你曾经访问过一个拥有应用缓存的网站,那么你的浏览器肯定会有一个存储的缓存。现在,因为攻击者连接到了同样的网络,他/她就能以某种方式操控这个存储的缓存,而浏览器(应用缓存)因为不能验证缓存,不能意识到这一点。因此,如果攻击者试图调用缓存并添加内嵌框架(类似于一种嵌入形式),他/她就很有可能欺骗用户告知其机密信息——甚至在用户与那个网站断开连接后。
想象有一个启用了应用缓存、名为example.com的HTTP网站,现在,一个犯罪实施者试图插入一个虚假的脸书登录页面。如果你输入了你的电子邮件地址和密码,它们便会被截获。这就是Firefox将把应用缓存功能限制在HTTPS上的原因。
结论:HTTP正在缓慢而痛苦地死去
如果你关注了最新的科技新闻,你就肯定听说过“谷歌将把所有HTTP网站标记为不安全。”同样地,所有其他浏览器也将使这场角逐的竞争力度加大,去抵制不安全的HTTP协议。把应用缓存限制在安全环境下的这一举动,标志着在这个方向上的另一个里程碑。