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

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

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

有没有可能检测到这些?

【问题讨论】:

标签: javascript google-chrome-extension detection


【解决方案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 的影响(如果有的话)(它们可能会有效地隐藏)。
    猜你喜欢
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    相关资源
    最近更新 更多