我最近阅读了有关在AngularJS应用程序中进行身份验证技术的文章。 此文 中的概念与我通常处理此过程的方式相似,但是以明文形式将密码绑定到控制器中的方法似乎存在安全漏洞,我想知道有哪些更好的方法来解决这个问题?
<input type="password" id="password" ng-model="credentials.password">
我想,一种方法是在控制器上加密绑定密码?有没有办法这样做?
我最近阅读了有关在AngularJS应用程序中进行身份验证技术的文章。 此文 中的概念与我通常处理此过程的方式相似,但是以明文形式将密码绑定到控制器中的方法似乎存在安全漏洞,我想知道有哪些更好的方法来解决这个问题?
<input type="password" id="password" ng-model="credentials.password">
我想,一种方法是在控制器上加密绑定密码?有没有办法这样做?
我对讨论提出以下意见:
1)控制器仅在登录视图存在时存在。一旦您提交了登录信息,通常会更改视图,从而销毁控制器。
2)即使它在整个会话期间都存在,人们也需要使用相当复杂的xss方案才能获取数据。
3)此外,您还有许多项目可以进一步减少风险:
使用https
在服务器端使用签名服务器证书
(如果您使用https,则浏览器不应允许您向http资源发出ajax调用,并且如果证书未签名并且未为站点添加异常,https请求将失败)
4)最后,如果服务器支持,则可以考虑使用oAuth进行身份验证。
5)当然,这完全取决于您的应用程序所需的安全级别。如果您真的担心某人在离开机器时获取密码,则应考虑使用不同的身份验证方法,例如:客户端证书(智能卡)或附加的1次性代码或类似物。