Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript web应用程序是否可以针对浏览器扩展进行保护?_Javascript_Security_Google Chrome Extension - Fatal编程技术网

Javascript web应用程序是否可以针对浏览器扩展进行保护?

Javascript web应用程序是否可以针对浏览器扩展进行保护?,javascript,security,google-chrome-extension,Javascript,Security,Google Chrome Extension,似乎有大量的浏览器扩展表现出恶意行为。此外,即使是有效的扩展也可能受到安全漏洞的影响,从而导致它们的恶意行为 避免此问题的一种方法是使用NWJS、Electron或类似平台打包web应用程序。这样做的优点是消除了扩展生态系统,但也存在一些缺点(安装过程、更多的资源消耗、增加的劳动力等) 一些人认为“最终用户受到损害是用户的责任,而不是网站的过错”。虽然这是一个很好的观点,但我们这些负责管理敏感数据的软件的人仍然有责任进行保护 在编写访问敏感数据的web应用程序时,是否可以采取措施防止浏览器扩展

似乎有大量的浏览器扩展表现出恶意行为。此外,即使是有效的扩展也可能受到安全漏洞的影响,从而导致它们的恶意行为

避免此问题的一种方法是使用NWJS、Electron或类似平台打包web应用程序。这样做的优点是消除了扩展生态系统,但也存在一些缺点(安装过程、更多的资源消耗、增加的劳动力等)

一些人认为“最终用户受到损害是用户的责任,而不是网站的过错”。虽然这是一个很好的观点,但我们这些负责管理敏感数据的软件的人仍然有责任进行保护

在编写访问敏感数据的web应用程序时,是否可以采取措施防止浏览器扩展


编辑:这个问题的任何创造性解决方案都是非常好的。或者,也欢迎确认为阴性。从这个问题引出的一些思路:

  • 窗口对象是否可以被保护或以某种方式设置为私有
  • 对于在页面之前加载的扩展JavaScript是否有任何限制,这些限制可以用于web应用程序
  • 伴生扩展是否可以检测到其他扩展,然后与web应用程序进行通信,告知其运行不安全?或者至少通知用户滥用的可能性
  • 扩展背景脚本是否也通过调用window.open注入iFrame和子窗口中?也许web应用程序会用不同的安全的窗口对象副本替换窗口对象
  • 有没有什么聪明的方法可以检测页面上是否运行了第三方代码?JavaScript环境的一种“散列”
有一个(原始)解决方案可以检测浏览器上安装的用户扩展,从那里我想你可以拒绝访问你的web应用程序,直到用户卸载这些扩展。它由一个小的资产数据库(图标)组成,如果javascript可以找到这些资产,就意味着安装了扩展

缺点:您无法检测扩展是否正在运行,因此,如果用户禁用它们,则不会被检测到,并且您仍然会得到肯定的结果

代码位于此链接中:

向此数据库提供更多资产的用户发布:

有一个(原始)解决方案可以检测浏览器上安装的用户扩展从那里,我想您可以拒绝访问您的web应用程序,直到用户卸载这些扩展。它由一个小的资产数据库(图标)组成,如果javascript可以找到这些资产,就意味着安装了扩展

缺点:您无法检测扩展是否正在运行,因此,如果用户禁用它们,则不会被检测到,并且您仍然会得到肯定的结果

代码位于此链接中:

向此数据库提供更多资产的用户发布:


否…………您可以滥用扩展API中的错误。例如,在现代Chrome中,扩展无法拦截AppCache。可能还有其他漏洞。我认为web扩展必须在经过审查后获得批准和签署。这不再准确了吗?@Gary-我已经发布了一些私人扩展,但不记得需要任何批准/签署/审查的内容。即使他们是。。。这就把安全责任推到了管理扩展生态系统的机构身上。由于已经有大量的恶意扩展(google it)报告,我认为系统正在失败。当然,如果扩展可以运行,它可以执行代码。没有什么可以阻止它运行的。就像你可以检测广告拦截器,但实际上并不能阻止它运行。不…………你可以滥用扩展API中的bug。例如,在现代Chrome中,扩展无法拦截AppCache。可能还有其他漏洞。我认为web扩展必须在经过审查后获得批准和签署。这不再准确了吗?@Gary-我已经发布了一些私人扩展,但不记得需要任何批准/签署/审查的内容。即使他们是。。。这就把安全责任推到了管理扩展生态系统的机构身上。由于已经有大量的恶意扩展(google it)报告,我认为系统正在失败。当然,如果扩展可以运行,它可以执行代码。没有什么可以阻止它运行的。就像你可以检测广告拦截器,但实际上并不能阻止它运行。这需要开发者1)从所有已知的浏览器扩展中编译一个资产列表,并使该列表保持最新。2) 为每个扩展发出获取请求。此选项似乎不可行。这将要求开发人员1)从所有已知的浏览器扩展中编译一个资产列表,并使该列表保持最新。2) 为每个扩展发出获取请求。这一选择似乎不可行。