我有一个用户可以注册的网站,我想使用chrome扩展程序提供一些功能,我有点担心安全问题:
我的想法是在弹出窗口中显示登录表单,然后使用用户名/密码(使用HTTPS)向我的服务器发送ajax请求,然后将令牌存储到用于跟踪ajax调用的localStorage中。
这是不安全的吗?为什么?我不明白这是多么不安全,然后在我的网站上使用一个表格,或者从客户端js框架发送ajax请求答案 0 :(得分:2)
这是安全的,只要您在客户端正确处理令牌(即仅将其提交到您的站点,而不是其他站点)。危险在于,您实际上正在处理Google和开源社区为保护Chrome / Chromium免受XSS,CSRF和其他令牌窃取攻击所做的工作。确保没有其他网站可以从您的扩展程序中请求令牌(这是通过浏览器通过同域强制执行的)。您需要使用证书签名来验证请求的来源(您应该能够重用用于SSL的私有证书)。
将所有客户端请求视为恶意客户端请求非常重要,即使这些请求来自您的扩展程序。服务器必须执行所有安全处理,就像客户端完全受损一样。在服务器端,您甚至不应该知道用户是使用您的分机还是常规浏览器,因为安全性并不重要。
至于在客户端存储登录凭据,您绝不应以纯文本格式存储密码。您应该对其进行加盐和散列,并将该散列提交给服务器。根据您的问题,听起来您无论如何都不会存储用户的凭据,只是一个令牌。如果是这种情况,并且令牌不包含任何敏感内容,那么存储它应该没有问题。确保您在服务器端过期令牌并定期强制重新验证。
为了澄清和拼写错误而编辑了答案