0

我有一个用户可以注册的网站,我想使用 chrome 扩展提供一些功能,我有点担心安全性:

我的想法是在弹出窗口中显示一个登录表单,然后使用用户名/密码(使用 HTTPS)向我的服务器发送一个 ajax 请求,然后将一个令牌存储到 localStorage 中,用于跟踪 ajax 调用。

这是不安全的吗?为什么?我不明白这比在我的网站上使用表单或记录从客户端 js 框架发送 ajax 请求更不安全

4

1 回答 1

1

这是安全的,只要您在客户端正确处理令牌(即仅将其提交到您的站点,而不是其他站点)。危险在于,您实际上是在绕过 Google 和开源社区为保护 Chrome/Chromium 免受 XSS、CSRF 和其他令牌窃取攻击所做的工作。确保没有其他站点可以从您的扩展程序请求令牌(这是通过同域强制在浏览器中完成的)。您将需要使用证书签名来验证请求的来源(您应该能够重用用于 SSL 的私有证书)。

将所有客户端请求视为恶意请求很重要,即使它们来自您的扩展程序。服务器必须执行所有安全处理,就好像客户端完全受到威胁一样。在服务器端,您甚至不应该知道用户使用的是您的扩展程序还是常规浏览器,因为从安全角度来看,这并不重要。

至于在客户端存储登录凭据,您永远不应该以纯文本形式存储密码。您应该对其进行加盐和散列,然后将该散列提交给服务器。根据您的问题,听起来您无论如何都不会存储用户的凭据,只是一个令牌。如果是这种情况,并且令牌不包含任何敏感内容,那么存储它应该没有问题。确保您在服务器端使令牌过期并定期强制重新验证。

已编辑答案以进行澄清和错别字

于 2013-03-15T19:24:36.900 回答