网站可以告诉什么插件/扩展安装在web浏览器



当使用一个网站时,一个网站可以告诉哪些插件/插件/扩展安装在web浏览器中吗?如果是这样,是否可以隐藏它,或者随机化名称/标识?

add -on/extensions in general

一般来说,没有:
网页无法确定安装在Firefox浏览器中的附加组件的一般列表。

但是,您可以根据附加组件对环境、DOM以及脚本操作的影响,很有可能检测到安装了特定附加组件。这些影响是严格地在一个接一个的基础上。

URI资源泄漏:
正如the8472的回答所述,一些附加组件对环境的影响之一可能是泄漏可访问web的uri。您可以测试那些您知道由特定附加组件泄露/提供的有效性。一些可能的uri包括以下模式:about:moz-extension:resource:。就像测试查看互联网上存在哪些网页一样,可能的uri组合非常多,因此不可能进行详尽的搜索。对于某些特定的扩展,您可以测试确切的已知资源。

DOM/computed style changes:
您可以测试DOM或应用的CSS的更改。如果您知道特定附加组件对DOM(插入、删除等)或特定元素的计算样式的影响,则可以显式地测试这些影响。你也可以测试那些你不希望看到的变化。虽然通常对意外更改的测试可能会告诉您,一个附加组件可能已经影响了您的页面,但如果不知道已知附加组件所做的具体预期更改,并且无法将实际更改与预期更改进行比较,您将无法说出哪个附加组件执行了此类更改。

改变全局作用域:
您还可以测试对环境所做的更改。附加组件可能会阻止你期望的资源加载,对这些资源进行更改,或者添加/注入额外的资源/属性/变量/函数。您可以测试是否有任何新的、丢失的或更改的属性。与DOM/CSS更改一样,如果您知道该附加组件对环境的影响,则只能声明它可能是特定的附加组件。与DOM更改一样,您可以根据期望在每个浏览器(和版本)中看到的内容进行一般比较。同样,这可以告诉您某些更改,但如果不将其与已知更改进行比较,您将无法说这是一个特定的附加组件(或只是Firefox的新版本)。

检测特定加载项:
您必须确定您的页面可以检测到的任何特定附加组件的效果。这可以通过实验和/或查看附加组件的源代码来确定。对于绝大多数附加组件,附加组件主要是用JavaScript编写的。它的源代码在安装包中(通常是)。xpi文件,这是一个zip格式的文件,扩展名为.xpi)。

不能100%保证任何检测都是精确的附加组件:
你只会知道发生了一些变化。您可能能够识别您所看到的更改是您期望由特定附加组件进行的更改,但这并不意味着其他附加组件没有进行更改。在这种情况下,更改很可能是您试图识别的附加组件,但不能100%保证。

<

插件/h2>

你的问题正文提出了一个与问题标题截然不同的问题。插件是一种附加组件,它提供"用户可以安装的共享库,以显示浏览器无法本地显示的内容"。这些都是,非常具体地,旨在提供可用于网页的功能。你绝对可以检测出浏览器中可用的插件。你可以使用window.navigator.plugins,它提供了一个PluginArray的插件对象来描述安装的插件。

取决于插件的类型和它们使用的URI方案。

web扩展需要选择向web公开它们的moz-extension:资源,并且它们目前在每个安装的基础上随机化它们的uuid,这使得探测它们的资源非常困难。

其他扩展类型,特别是SDK插件,可能会注册resource:, about:或类似的web可访问的uri,这些uri可以被web内容检测到,除非被内容策略阻止。例如,无资源URI泄漏插件和各种内容拦截器都可以做到这一点。

在文档中很有可能。由Java Script提供的插件。API

相关内容

  • 没有找到相关文章

最新更新