检查用户是否安装了第三方Chrome扩展程序

格雷格

我目前正在尝试检测用户是否安装了某个Chrome扩展程序。Chrome扩展程序不是我自己的,我没有源代码。我已经在很多帖子中尝试过方法,但是它们都失败了。下面详细介绍了我尝试过的方法以及失败的原因。

当执行时,这导致“无法读取未定义的属性连接”:

var myPort=chrome.extension.connect('idldbjenlmipmpigmfamdlfifkkeaplc', some_object_to_send_on_connect);

尝试按以下方式尝试加载扩展资源,以测试扩展资源是否存在,但在浏览器中转到该URL会导致“找不到您的文件” Chrome错误页面(请注意,我通过转到C:\ Users \\找到了此路径Windows本地计算机上的AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions \ idldbjenlmipmpigmfamdlfifkkeaplc \ 1.0.0.1_0 \):

chrome-extension://idldbjenlmipmpigmfamdlfifkkeaplc/1.0.0.1_0/icon_16.png

使用Chrome管理,但执行时会导致控制台错误“无法读取未定义的属性”

chrome.management.get("idldbjenlmipmpigmfamdlfifkkeaplc", function(a){console.log(a);});

我遇到的大多数其他答案似乎都涉及由试图检查扩展名的同一人编写的扩展名。

可汗

假设您需要一个网站

connect/message方法表示该扩展名在您希望与其建立联系的来源列表中专门列出了您的网站除非您自己编写此扩展名,否则这不太可能,因为这不能是通配符域。

从Web上下文引用扩展名内的文件将 返回404模拟网络错误,除非扩展程序将其声明为可通过Web访问该方法以前在2012年之前就可以使用,但是Google将该方法作为一种指纹识别方法予以关闭-现在,扩展程序必须显式列出可以访问的资源。您具体提到的扩展名未列出任何可通过Web访问的文件,因此此路由也已关闭。

chrome.management是扩展API;网站根本无法使用它。

最后,如果扩展程序的内容脚本以某种方式修改了网页的DOM,则您可能会检测到这些更改。但这不是很可靠,因为内容脚本可以更改其逻辑。同样,在您的特定情况下,扩展程序侦听DOM事件,但无论如何都无法明确接收到该事件-因此此路由已关闭。

请注意,通常,您无法确定内容脚本代码是否与您的脚本一起运行,因为它在隔离的上下文中运行

总而言之,这个问题没有神奇的解决方案。扩展必须协作才能被发现,您不能绕过它。

假设您需要其他扩展程序

connect/message方法列入白名单的来源默认为所有扩展名;但是,要使其正常工作,目标扩展程序需要侦听onConnectExternalonMessageExternal事件,这是不常见的。

可通过Web访问的资源对来自其他扩展名的访问具有相同的限制,因此情况并不更好。

可以使用自己的内容脚本查看页面的更改,但是同样可能没有可观察的页面,并且您不能依赖那些始终相同的更改。

与扩展程序网页交互类似,来自不同扩展程序的内容脚本在隔离的上下文中运行,因此不可能直接“捕获”正在运行的代码。

chrome.management扩展程序中的API是检测已安装的第三方扩展程序的唯一保证方法,但请注意,它需要"management"经过许可并带有可怕的警告。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Chrome扩展程序和Django:验证是否允许第三方Cookie

来自分类Dev

Chrome扩展程序和Django:验证是否允许第三方Cookie

来自分类Dev

安装程序中的“安装此第三方软件”框是什么,以及安装了哪些第三方软件?

来自分类Dev

安装程序中的“安装此第三方软件”框是什么,以及安装了哪些第三方软件?

来自分类Dev

在Pelican中安装第三方Markdown扩展

来自分类Dev

全屏截图,不带第三方扩展程序(Chrome浏览器)

来自分类Dev

WIX:如何在不使用注册表搜索的情况下检测是否安装了第三方应用程序?

来自分类Dev

扩展第三方接口

来自分类Dev

安装后允许我的Android应用程序使用第三方扩展程序/插件-低功耗蓝牙

来自分类Dev

如何在Chrome上覆盖“新标签页”页面(没有第三方软件,例如扩展程序)

来自分类Dev

是否可以在iOS模拟器中安装Adobe Reader或第三方应用程序进行测试?

来自分类Dev

使用第三方安装程序安装firefox Extension

来自分类Dev

安卓应用程序可以由第三方扩展吗?

来自分类Dev

伪造第三方库中的扩展方法

来自分类Dev

扩展第三方zend Framework 2模块

来自分类Dev

第三方Cookie,以检查浏览器是否默认将其阻止

来自分类Dev

如何检查我的 APK 第三方库是否符合 64 位架构?

来自分类Dev

如何使用第三方程序自动检查单选按钮

来自分类Dev

如何安装第三方程序并使它们显示在“ Dash主页”菜单中?

来自分类Dev

在重新安装Ubuntu之前备份第三方应用程序

来自分类Dev

霓虹灯安装-安全启动与第三方驱动程序

来自分类Dev

使用Angular-CLI安装第三方应用程序

来自分类Dev

在重新安装 Ubuntu 之前备份第三方应用程序

来自分类Dev

从另一个应用程序安装第三方 APK

来自分类Dev

Android第三方导致“未安装应用程序”错误

来自分类Dev

如何安装第三方库

来自分类Dev

如何安装第三方Rhythmbox插件?

来自分类Dev

CMake第三方库安装

来自分类Dev

在Prestashop中安装第三方库

Related 相关文章

  1. 1

    Chrome扩展程序和Django:验证是否允许第三方Cookie

  2. 2

    Chrome扩展程序和Django:验证是否允许第三方Cookie

  3. 3

    安装程序中的“安装此第三方软件”框是什么,以及安装了哪些第三方软件?

  4. 4

    安装程序中的“安装此第三方软件”框是什么,以及安装了哪些第三方软件?

  5. 5

    在Pelican中安装第三方Markdown扩展

  6. 6

    全屏截图,不带第三方扩展程序(Chrome浏览器)

  7. 7

    WIX:如何在不使用注册表搜索的情况下检测是否安装了第三方应用程序?

  8. 8

    扩展第三方接口

  9. 9

    安装后允许我的Android应用程序使用第三方扩展程序/插件-低功耗蓝牙

  10. 10

    如何在Chrome上覆盖“新标签页”页面(没有第三方软件,例如扩展程序)

  11. 11

    是否可以在iOS模拟器中安装Adobe Reader或第三方应用程序进行测试?

  12. 12

    使用第三方安装程序安装firefox Extension

  13. 13

    安卓应用程序可以由第三方扩展吗?

  14. 14

    伪造第三方库中的扩展方法

  15. 15

    扩展第三方zend Framework 2模块

  16. 16

    第三方Cookie,以检查浏览器是否默认将其阻止

  17. 17

    如何检查我的 APK 第三方库是否符合 64 位架构?

  18. 18

    如何使用第三方程序自动检查单选按钮

  19. 19

    如何安装第三方程序并使它们显示在“ Dash主页”菜单中?

  20. 20

    在重新安装Ubuntu之前备份第三方应用程序

  21. 21

    霓虹灯安装-安全启动与第三方驱动程序

  22. 22

    使用Angular-CLI安装第三方应用程序

  23. 23

    在重新安装 Ubuntu 之前备份第三方应用程序

  24. 24

    从另一个应用程序安装第三方 APK

  25. 25

    Android第三方导致“未安装应用程序”错误

  26. 26

    如何安装第三方库

  27. 27

    如何安装第三方Rhythmbox插件?

  28. 28

    CMake第三方库安装

  29. 29

    在Prestashop中安装第三方库

热门标签

归档