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

Rob*_*cks 0 javascript api firefox firefox-addon

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

AddonManager.getAddonByID('?')

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

如果您是插件的开发人员,也可以进行检测.

Wla*_*ant 5

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

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

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

当然,网站仍然可以尝试通过其效果来检测扩展.但是,这不是一种非常可靠的方法,例如您链接的Adblock检测器对我说"没有检测到广告阻止",显然是错误的.

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