Firefox是否有标准API来检查特定插件的安装?

时间:2014-05-02 10:26:16

标签: javascript api firefox firefox-addon

我试图使用纯JavaScript检测限制我们网站功能的某些插件(例如Ghostery或DoNotTrackMe)的存在。如果Firefox有一个标准API来查询插件的存在,它会使我的工作短路。可能类似于:

  

AddonManager getAddonByID('&#39)。

可以检测插件,例如Java和Flash(navigator.plugins),但不能用于插件。

也可以检测插件的if you are the developer

2 个答案:

答案 0 :(得分:5)

不,没有这样的API而且没有。如果浏览器允许网站检测安装了哪些扩展,那么这是一个错误和隐私问题 - Firefox和Chrome过去修复了这些问题,目前没有这样的问题存在。为什么网页不应该知道这一点:

  • 附加组件列表允许对用户进行相当精确的指纹识别,即使禁用了cookie和类似机制,也可能允许跟踪用户。
  • 如果网站可以提前检查是否安装了易受攻击的扩展/扩展版本,则攻击扩展中的漏洞会变得更加简单。同样适用于依赖于特定扩展的社交工程攻击。
  • 网站总是有可能决定排除安装了不受欢迎的软件的网站访问者(各种广告拦截器,漏洞扫描程序,下载帮助程序等)。
  • 已安装的扩展程序列表详细介绍了用户,他的浏览习惯和偏好 - 向网站提供此信息将是一个巨大的隐私问题。

navigator.plugins功能当然分享了许多相同的问题 - 它是在互联网的黑暗时代引入的,当时没有人考虑过这样的问题。这就是为什么正在积极讨论此功能的原因,并且将来可能会受到限制。

当然,网站当然仍然可以尝试通过其效果来检测扩展。但是,这不是一种非常可靠的方法,例如,您链接到的Adblock检测器表示"未检测到广告屏蔽"对我而言显然是错误的。

奖励信息:Google Chrome确实提供了已安装扩展程序的列表,但仅提供给一个网站:Chrome网上应用店。 Web Store使用它来指示您已安装的扩展。它是否可以用这些数据做任何事情,你的猜测和我的一样好。

答案 1 :(得分:0)

您可以在FF,IE,Chrome中检测 AdBlock

您可以在FF,IE,Chrome和其他

中检测 FlashBlock

您可以在Chrome中检测 Ghostery

请注意,这些脚本使用推理来检测这些插件的存在,但没有API。我还没有找到其他插件的探测器,但它们可能存在......(正在进行中)