9

我计划通过将用户输入的用户名/密码存储到 javascript 变量中来在非 ssl 加密站点中进行安全登录。

每次用户发出请求时,我的应用程序首先会从服务器请求一个令牌,然后将其与存储的 $scope.password 组合,然后进行哈希处理,然后发送到服务器进行验证。如果验证正确,则请求将继续,否则将停止。

此外,每次验证完成时,服务器都会创建一个新令牌,无论它是否有效。

据我所知,如果我使用即时函数会很安全,但是由于我要使用angularjs,我认为不可能,所以我如何确保存储在内存中的用户名/密码不是可破解?

谢谢。

4

2 回答 2

3

您无法阻止有人从内存中读取用户名和密码,但您可以花一些精力在发送到服务器的内容上。

在将密码和用户名发送到服务器时,您应该尝试对其进行哈希处理。使用用户会话独有的盐,因此更加不可预测,并且需要完整记录整个流量。

这不会带来绝对的安全性,但会提高其他人阅读所有内容的门槛。

PS:我强烈建议使用 SSL。

于 2013-09-23T13:51:30.763 回答
3

我认为您需要定义“安全”的含义。特别是,准确定义您要防御的是什么,以及为什么不防御常见的攻击媒介。

如果您纯粹是试图保护物理设备免受内存读取,那么您很不走运,因为没有什么可以做到这一点。是的,有一些方法可以让它变得更加困难,但最终如果他们可以物理访问设备,那么您无能为力以防止丢失。

如果您谈论的是中间人或类似风格的攻击,那么忽略工具包中的最佳工具(SSL 证书),您已经迷失了方向。

唯一通过缓存和不断重新提交用户/密码来工作的网站是由那些不知道自己在做什么的人构建的,因为这是一种非常糟糕的做法。

于 2013-09-23T13:58:55.727 回答