gpt4 book ai didi

javascript - 浏览器扩展可以记录用户输入吗?

转载 作者:行者123 更新时间:2023-12-01 03:36:05 26 4
gpt4 key购买 nike

我正在开发一个应用程序,该应用程序可以加密敏感用户数据并将其存储在 localStorage 中。加密/解密的密码未保存在任何地方。因此,如果用户丢失密码,就无法解密数据。据我所知,浏览器扩展可以访问任何页面上的 localStorage ,并且可以监听页面上任何元素的事件(例如 input )。这就是问题所在,因为恶意扩展程序可以记录用户密码,从 localStorage 获取加密数据并使用密码对其进行解密。

我的问题是:

  1. 是否可以通过网页禁用扩展程序?
  2. 是否有办法阻止扩展程序访问页面上的 localStorage
  3. 还有其他更安全的方法来实现我想做的事情吗?

最佳答案

  1. 没有。
  2. 如果用户允许扩展程序访问,则不会。
  3. 可能,请参见下文。

我认为这种方法存在多个问题。

正如 @wOxxOm 所指出的,客户端的事物完全由浏览器控制(在本例中),并且浏览器设置由您的最终用户(或应用于客户端计算机的策略)控制。您可以想到做的一件事是让您的应用程序在私有(private)/隐身模式下运行,因为默认情况下会禁用扩展,但即使如此,用户也可以允许隐身模式扩展,并且由于下面描述的原因,它无论如何也没有多大帮助(除此之外,您无法可靠地检测用户是否正在使用私有(private)/隐身模式,因此无论如何它都只能是一个建议)。

@MaartenBodewes 也已经评论了我的第二点。选择扩展(并授予它们权限)是您的用户的责任。如果他非常信任某个扩展程序,以至于将其添加到浏览器中,那么最终风险就由他自己承担。您可以对此发出警告,但决定权始终应由用户决定。

我最重要的一点是,这无论如何都没有帮助。如some people已经注意到,Javascript 中的加密技术曾经是毫无希望的。如果您的目标是较旧的浏览器,这确实是一个坏主意。新的浏览器带来了重大改进(请参阅已接受的答案 here ),Content-Security-Policy 和新的加密 API 都很好(尽管跨浏览器和版本的支持不是很好)。

但是,您的应用程序中始终可能存在缺陷,导致所有安全工作失效。跨站点脚本编写的单个实例将使您无法抵御此类威胁。如果您非常担心安全性,以至于希望用户不要使用他们认为可以的扩展,那么您也应该同样担心这样的风险。

简而言之,我认为如果恶意浏览器扩展是您的威胁模型中的主要威胁,那么不幸的是,网络可能不是您的应用程序的良好平台。另一方面,编写类似 native 应用程序的东西有其自身的威胁,与 Web 应用程序非常不同,因此决定权在您。无论您做什么,总会存在您必须以某种方式接受或转移的残余风险。

关于javascript - 浏览器扩展可以记录用户输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44281266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com