如何在AngularJS中正确保护密码

5

我最近阅读了有关在AngularJS应用程序中进行身份验证技术的文章。 此文 中的概念与我通常处理此过程的方式相似,但是以明文形式将密码绑定到控制器中的方法似乎存在安全漏洞,我想知道有哪些更好的方法来解决这个问题?

<input type="password" id="password" ng-model="credentials.password">

我想,一种方法是在控制器上加密绑定密码?有没有办法这样做?


你看过这个吗?https://dev59.com/BXfZa4cB1Zd3GeqPOCnM - Jireugi
无论密码是明文存储在客户端还是在请求中(应使用SSL和POST方式),都没有关系,因为客户端已经知道密码,如果有人破解了您的SSL加密,那么您将面临更严重的问题,即使您没有SSL,如果有人可以捕获请求,无论他们捕获客户端的真实密码还是哈希密码,他们仍然可以访问该用户的帐户。 - adeneo
1个回答

1

我对讨论提出以下意见:

1)控制器仅在登录视图存在时存在。一旦您提交了登录信息,通常会更改视图,从而销毁控制器。

2)即使它在整个会话期间都存在,人们也需要使用相当复杂的xss方案才能获取数据。

3)此外,您还有许多项目可以进一步减少风险:

  • 使用https

  • 在服务器端使用签名服务器证书

(如果您使用https,则浏览器不应允许您向http资源发出ajax调用,并且如果证书未签名并且未为站点添加异常,https请求将失败)

4)最后,如果服务器支持,则可以考虑使用oAuth进行身份验证。

5)当然,这完全取决于您的应用程序所需的安全级别。如果您真的担心某人在离开机器时获取密码,则应考虑使用不同的身份验证方法,例如:客户端证书(智能卡)或附加的1次性代码或类似物。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接