我应该注意,我不是Chrome扩展专家。但是,我正在寻找一些建议或高级解决方案,以解决我对Chrome扩展程序的安全问题。我搜索了很多但似乎找不到具体的答案。
我有一个Chrome扩展程序,需要让用户登录到我们的后端服务器。
但是,出于设计原因决定默认的镀铬弹出气球是不合需要的。因此,我使用了一个模态对话框和jquery来创建一个注入了内容脚本的样式化弹出窗口。
因此,弹出窗口将注入您正在访问的页面的DOM中。
一切正常,但是现在我需要实现登录功能,我注意到了一个漏洞:
如果我们注入弹出窗口的站点知道密码字段ID,则可以运行脚本来持续监视密码和用户名字段并存储该数据。叫我偏执,但我认为这是一种风险。实际上,我编写了一个模型攻击站点,可以在输入给定字段时正确提取用户和密码。
我看了一些其他的chrome扩展程序,比如Buffer,并注意到他们所做的是从他们的网站加载弹出窗口,而是嵌入一个包含弹出窗口的iFrame。弹出窗口将与iframe内的服务器进行交互。
我的理解是iframe受制于与其他网站相同的脚本编写政策,但我可能会弄错。
因此,同样的事情会安全吗?
为简化起见,如果我通过Chrome扩展程序将 https 登录表单从我们的服务器嵌入到给定的DOM中,是否存在密码嗅探的安全问题?
如果这不是处理Chrome扩展登录的最佳方式,您对什么是建议吗?也许有一种方法可以声明javascript无法与之交互的文本字段?不太确定!
非常感谢你的时间!我很乐意澄清所需的一切。
答案 0 :(得分:2)
同源策略确实保护了主页中iframe的内容。
<强>然而即可。用户无法知道页面中的iframe是否属于您的扩展程序。恶意页面可能会复制您的设计并冒充您的扩展程序,并最终窃取凭据。
让用户输入凭据的唯一安全方法是通过单独的窗口,弹出窗口或标签 Chrome提供了一个API来打开一个具有所需属性的窗口,该窗口应该足够灵活,以满足您的设计要求。请参阅此示例,该示例还涉及在弹出窗口中获取凭据:https://stackoverflow.com/a/10341102/938089