3

我应该注意,我不是 chrome 扩展专家。但是,我正在寻找一些建议或高级解决方案来解决我的 chrome 扩展程序的安全问题。我已经搜索了很多,但似乎找不到具体的答案。

情况

我有一个 chrome 扩展,需要让用户登录到我们的后端服务器。

但是,出于设计原因,我们决定不希望使用默认的 chrome 弹出气球。因此,我使用了一个模态对话框和 jquery 来制作一个注入内容脚本的样式弹出窗口。

因此,弹出窗口被注入到您正在访问的页面的 DOM 中。

问题

一切正常,但是现在我需要实现登录功能,我注意到了一个漏洞:
如果我们将弹出窗口注入的站点知道密码字段 ID,他们可以运行脚本来持续监控密码和用户名字段并将其存储数据。叫我偏执狂,但我认为这是一种风险。事实上,我写了一个模型攻击站点,当输入给定字段时,它可以正确提取用户和密码。

我设计的解决方案

我查看了其他一些 chrome 扩展,例如 Buffer,并注意到他们所做的是从他们的网站加载弹出窗口,而是嵌入一个包含弹出窗口的 iFrame。弹出窗口将与 iframe 内的服务器交互。

我的理解是 iframe 与其他网站一样受同源脚本策略的约束,但我可能弄错了。

因此,做同样的事情会安全吗?

TLDR

为简化起见,如果我通过 chrome 扩展将来自我们服务器的https登录表单嵌入到给定的 DOM 中,是否存在密码嗅探的安全问题?

如果这不是处理 chrome 扩展登录的最佳方式,您有什么建议吗?也许有一种方法可以声明 javascript 无法与之交互的文本字段?不太确定!

非常感谢您的参与!我很乐意澄清任何需要的东西。

4

1 回答 1

2

同源策略确实保护 iframe 的内容不受主页的影响。

然而。用户无法知道页面中的 iframe 是否属于您的扩展程序。流氓页面可能会复制您的设计并冒充您的扩展程序,并最终窃取凭据。

让用户输入凭据的唯一安全方法是通过单独的窗口、弹出窗口或选项卡。
Chrome 提供了一个 API 来打开具有所需属性的窗口,它应该足够灵活以满足您的设计要求。请参阅此示例,这也是关于在弹出窗口中获取凭据:https ://stackoverflow.com/a/10341102/938089

于 2013-06-27T16:19:09.343 回答