Firefox 87.0 升级了哪些安全策略

Firefox 87.0 升级了哪些安全策略

Mozilla在2021年3月23日正式发布了Firefox 87.0,其中涉及到对安全策略的更新、Bug修复、快捷键以及开发者工具功能。今天我们一起探究一下具体更新了哪些安全策略。

总体来说,本次涉及安全策略的更新主要有两点:

  1. 引入新的SmartBlock功能来增强隐私模式下的安全和性能
  2. 对HTTP Referrer头信息进行剪裁来保护用户隐私

首先我们来看第一点SmartBlock

SmartBlock是Firefox隐私模式下的智能跟踪阻止机制,除了确保Firefox强大的隐私保护,而且提供了出色的性能。

Firefox很早就推出了隐私窗口的功能,来为那些不想被网站追踪的用户提供更多的隐私保护,但是先前的保护机制是基于Content Blocking的,简单地说就是在隐私窗口中,Firefox会阻止加载某些第三方的脚本、图像和其他一些可能跟踪用户信息的内容,以此来达到保护用户隐私。但是这种机制有一些弊端,就是可能降低某些页面的性能,甚至造成页面无法正确显示。因为一些页面在缺少某些脚本或其他内容时无法被正确地渲染。

所以Firefox在本次更新中引入了一种新的安全机制就是SmartBlockSmartBlock同样会阻止加载那些具有跟踪功能的资源,但会智能的修复对网页造成的破坏。其原理就是为那些被阻止的资源提供本地代理,简单说就是用Firefox提供的资源替换掉那些具有跟踪功能的资源,而网页自身不会感受到,用一个词来说就是“瞒天过海”。使用这种方法可以在提供隐私保护的同时而不让页面出错,当然其底层的机制不会像我说得这么简单,具体涉及到的替换机制应该很复杂,不能随随便便替换,要不怎会打上Smart标签。

下图是Firefox提供的两种模式下页面加载速度的对比(左为ContentBlocking,右为SmartBlock):

另一项改进是采用新的Referer剪裁机制

浏览器在请求资源时会在HTTP头信息中加上Referer信息来表明这次请求是从哪个页面上发起的,以前这个信息是页面的完整URL,这样其实已经造成了我们的信息泄露。比如我们正在使用某个搜索引擎搜索内容,我们的搜索内容通常会出现在搜索结果的URL中,而此时搜索结果页面中又包含第三方的广告之类的信息,在请求第三方的脚本时浏览器会自动把当前搜索结果的URL作为Referer发送给第三方,那么第三方就可以窥探到我们在搜索什么内容。

当然在Firefox 87.0更新之前并非一点保护措施都没有,2016年之后引入Referrer-Policy头信息允许网站自己控制Referer头信息如何发送,其值有如下几种:

Referrer-Policy: no-referrer
Referrer-Policy: no-referrer-when-downgrade
Referrer-Policy: origin
Referrer-Policy: origin-when-cross-origin
Referrer-Policy: same-origin
Referrer-Policy: strict-origin
Referrer-Policy: strict-origin-when-cross-origin
Referrer-Policy: unsafe-url

Referrer-Policy的默认值是no-referrer-when-downgrade,也就是说从HTTPS页面请求非HTTPS的跨站资源时不发送Referer头信息,其他情况均发送完整URL。

Firefox在本次更新后将strict-origin-when-cross-origin作为Referrer-Policy的默认值。在这个规则下,在请求跨站资源时,如果跨站资源与当前页面的协议都为HTTPS时发送Referer头信息,但会经过剪裁,仅仅保留URL中的origin信息,剪裁掉pathquery信息。当跨站资源与当前页面的协议不同时,不发送Referer头信息。

总结

Firefox作为开源浏览器,一直在进步,是个人最喜欢的浏览器。虽然在市场份额上比不过Chrome,但是最起码在这里可以提供完整的功能。而Chrome在账户、扩展不能使用的情况只能作为备用选项。

Firefox 87.0除了安全方面的更新,在开发者工具上的更新也很实用,比如可以直接对:hover :active :visited等伪类进行调试,有兴趣的可以尝试一下。

举报
评论 0