Google计划对Chrome进行更改,这可能会破坏广告拦截器

2020-12-28 10:27:44 来源: INeng财经

Google计划更改扩展与其Chrome浏览器集成的方式。该公司表示,这些更改对于打击恶意扩展是必要的,并且其动机是打击恶意扩展, 这破坏了用户的隐私和安全性,这是该公司不断努力使扩展更安全的一部分。此举还意味着,流行的广告屏蔽扩展程序(例如uBlock Origin和uMatrix)将不再起作用。

一份名为Manifest V3的计划在公共文档中进行了描述。Google提议对扩展的工作方式进行一些更改。广泛的目的是提高扩展安全性,使用户可以更好地控制扩展的功能以及与之交互的站点,并使扩展性能更强大。例如,扩展程序将不再能够从远程服务器加载代码,因此提交到Chrome网上应用店的扩展程序将完全包含将在浏览器中运行的代码。这样可以防止恶意参与者将扩展名提交到商店,该扩展名在提交和批准过程中加载良性代码,但是一旦发布了扩展名,便切换到恶意代码。为了阻止扩展程序要求全面访问每个网站,Manifest V3还更改了权限系统,

广告拦截器的问题来自名为的API webRequest。使用当前的webRequestAPI,浏览器会要求扩展检查该扩展感兴趣的每个网络请求。然后,扩展可以在发送请求之前修改请求(例如,取消对某些域的请求,添加或删除Cookie或删除某些来自请求的HTTP标头)。这为广告拦截者提供了有效的工具;他们可以检查提出的每个请求,并选择取消被认为与广告有关的请求。

该API还可以用于对请求的响应执行有限的修改,该修改可以用于执行诸如阻止JavaScript或阻止对大型媒体文件的请求之类的操作。

由于扩展程序需要检查每个请求并做出其判决(取消请求,允许请求,修改或重定向请求),因此Google表示速度很慢。扩展是用JavaScript编写的,在检查请求时可能会花费任意时间,这意味着可能会在浏览器中插入较长的延迟。另一方面,这为API提供了强大的功能-扩展可以使用其喜欢的任何匹配算法来选择允许和禁止的请求。那种力量不一定是永久的。允许对Cookie进行检查和修改的API也允许对Cookie进行窃取。

为了替代webRequest,Google提出了一个新的API declarativeNetRequest。使用这个新的API,扩展程序无需向浏览器询问扩展程序对每个请求的处理方式,而是向浏览器声明“阻止看起来像X的请求,重定向看起来像Y的请求,并允许其他所有操作”。这些声明可以使用一些简单的通配符,但否则非常简单。然后,Chrome浏览器本身可以将每个URL与X和Y进行比较,并采取适当的措施。

从好的方面来看,这应该更快。所有通配符和比较都是在Chrome中而不是扩展程序的JavaScript中处理的,因此无法无限期地延迟请求。新的API也更好地保护了隐私。由于请求不会发送到扩展程序,因此意味着该扩展程序不再能够查看Cookie或其他潜在的敏感信息。但这也剥夺了其灵活性的延伸。不再使用更复杂的模式或匹配条件。这也意味着被阻止或重定向的URL列表必须是静态的(列表必须在扩展名中存储为JSON文件),并且进一步限制为30,000个项目。相比之下,uBlock Origin附带90, 。

并非每个广告拦截器都一定会违反新的限制。例如,声明新declarativeNetRequestAPI的被阻止URL的语法与AdBlock Plus已经使用的语法非常相似,因此,阻止程序应该能够轻松地适应新API。但是任何具有更多规则或更复杂规则的事物都将失去运气。在跟踪Manifest V3的进度和相关讨论线程的错误中,NoScript和uBlock Origin的作者都表示,新API不足以对其进行扩展。

其他阻止工具的开发人员也表达了担忧。一系列反网络钓鱼/反恶意软件扩展使用相同的API。这些扩展名与广告拦截器的工作方式几乎相同(将网址与黑名单进行匹配),但是它们还有其他的保密问题。正如反网络钓鱼扩展blockade.io的开发人员所解释的那样,其扩展块的URL仅以散列形式存储。新的API要求以纯净的可读文本形式提供URL。使用纯文本列表将使恶意软件分发者和网络钓鱼者更容易看到其站点已被列入黑名单;对于寻找积极利用浏览器漏洞的网站的任何人来说,该列表也将成为有用的资源。

Manifest V3尚未最终确定,即使实施后,在一段时间内扩展仍可以继续使用当前的API。但是,按照目前的情况来看,在不久的将来,各种各样的扩展功能将变得越来越缺乏功能,甚至可能完全停止工作。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。