网站是不是可以跟踪用户的 chrome 扩展程序或他们的行为?

Posted

技术标签:

【中文标题】网站是不是可以跟踪用户的 chrome 扩展程序或他们的行为?【英文标题】:Possibility for a website to track the user's chrome extensions, or their behaviour?网站是否可以跟踪用户的 chrome 扩展程序或他们的行为? 【发布时间】:2016-11-18 10:37:09 【问题描述】:

我对我的网站访问者的 Chrome 扩展程序以及它们的作用非常感兴趣

(传出网络通信、文件保存、存储等)

有没有可能检测到这些?

【问题讨论】:

可能相关:Can a website block a Chrome Extension? 【参考方案1】:

对于某些特定的扩展,您可以通过尝试从中加载资源来检测它们。这将测试特定的扩展,而不是发现列表。

这需要您知道扩展 ID、资源路径,并且资源必须为 be in web_accessible_resources。顾名思义,这使得一些文件可以从 Web 上下文中访问,因此您可以尝试加载它们。网络错误表示它没有安装(或不再有该资源可通过网络访问)。

同样,这要求您提前知道要测试的扩展程序,而没有网络可访问资源的扩展程序对这种技术是不可见的。

注意事项:

Google Cast 库 uses this technique 用于探测是否安装了自己的扩展。 如果不是,它会在 JS 控制台中为失败的网络传输生成一个令人讨厌的错误,这是一个您无法从 JS 代码中静默的错误——这已经够烦人的问题了,Chrome 最终 为这些人添加了一个黑名单控制台消息 只是为了不碍眼。

由此,您可以推断出测试一长串扩展可能不是一个好主意。它会因错误而污染您的控制台。对于预定义域上的合作扩展,there's a better way to test 已安装。但那不是你的情况。

【讨论】:

【参考方案2】:

没有。

那将是对隐私的严重侵犯。

检测扩展最接近的方法是检查页面的 DOM 和 JS 环境,并查看浏览器是否以您未预料到的方式对其进行了修改……但这将是一个需要解决的非常广泛的问题,所以你实际上只能这样做来寻找非常具体的效果(这就是 ad-blocker-blockers 所做的)。

【讨论】:

哦,我明白了。所以我可以粗略检测到的唯一类型的扩展是“内容脚本” @StevenPalinkas 不,您无法检测到这些,因为它们在与您的页面隔离的上下文中运行。您只能检测到扩展对 DOM 和 injected page-level scripts 的影响(如果有的话)(它们可能会有效地隐藏)。

以上是关于网站是不是可以跟踪用户的 chrome 扩展程序或他们的行为?的主要内容,如果未能解决你的问题,请参考以下文章

在 Chrome 扩展中使用 AJAX 请求检测 URL 是不是支持 HTTP2?

Google Chrome扩展程序与安全网站交互

让 Chrome 扩展程序下载文件

Google禁止从第三方网站安装Chrome扩展程序

chrome无法从该网站添加应用扩展程序和用户脚本的有效解决方法!

跨域 Chrome 扩展