从Firefox 62起,HTTP页面将无法使用AppCache。

应用程序缓存(AppCache)为希望离线运行其网站的网站管理员提供缓存机制。 现在,它可以用于HTTP以及HTTPS页面。 然而,在2018年计划推出的Firefox 62中,只有HTTPS网页就能包含此功能。 换句话说,Firefox已将AppCache限制为安全上下文。

AppCache不仅能离线运行站点,还是许多网站管理员提高加载速度并减少服务器负载的利器。

如果AppCache在HTTP网站上运行,它可能会造成一些严重的安全问题。用Mozilla的话来说,这是因为“AppCache在重新验证其缓存方面存在局限性,这允许攻击者诱骗浏览器永远不会通过将清单设置为格式不正确的缓存文件来重新验证缓存“。

当您的浏览器加载启用AppCache的网站时,它会以缓存的形式存储该网站的数据。 AppCache API在验证缓存文件时有其自身的局限性。 因此,当用户打开这样的网站时,浏览器将从存储的缓存中提供数据,而不会验证所存储的缓存是否具有相同的格式。

假设您已连接到Wi-Fi网络,并且攻击者也已连接。 如果您使用AppCache访问过网站,则您的浏览器必须具有存储缓存。 现在,当攻击者连接到同一个网络时,他/她可以以某种方式操作这个存储的缓存,并且浏览器(AppCache)将无法注意到它,因为它无法验证缓存。 因此,如果攻击者设法操纵缓存并添加iframe(就像嵌入一样),他/她可能会欺骗用户提供他们的机密信息 - 即使在用户与该网络断开连接之后。

想象一下,一个名为example.com的AppCache启用的HTTP站点和一个犯罪分子设法插入一个虚假的微博登录页面。 如果您输入您的电子邮件ID和密码,它将被捕获。 这就是为什么Firefox要将这种AppCache功能限制在HTTPS上的原因。

谷歌在年初的时候曾发话将在今年7月全面标注非HTTPS站点为”不安全“,而事实上这并非一家之言。像谷歌,mozilla这样的主流浏览器厂商近几年正不断深化摈弃HTTP不安全协议的理念。通过限制AppCache来实现安全上下文无疑是大方向上的另一步。