网站是不是可以跟踪用户的 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?