如何在AngularJS中正确保护密码

时间:2016-09-27 22:09:17

标签: javascript angularjs security password-encryption

我最近阅读了以下有关 AngularJS应用程序中的身份验证技术的article 。他的概念非常类似于我通常会如何处理这个过程,但密码以明文方式绑定到控制器的方式对我来说似乎是一个安全漏洞,我想知道有什么更好的方法来解决这个问题?

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

我认为,一种方法是加密控制器上的绑定密码?有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

我讨论了5美分:

1)控制器仅在您的登录视图存在时存在。提交登录信息后,通常会更改视图,从而破坏控制器。

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

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

  • 使用https

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

(如果你使用https,那么浏览器不应该允许你发出对http资源的ajax调用,如果证书不是sigend并且没有为网站添加例外,则https请求将失败)

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

5)Ofc。这一切都取决于您的应用程序所需的安全级别。如果你真的担心有人拿到密码,当一个人离开机器时,应该考虑不同的身份验证方法,例如:客户端证书(在智能卡上)或额外的一次性代码,或者某种东西类似。