如何在 AngularJS 中正确保护密码

How to properly secure password in AngularJS

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

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

我认为一种方法是在控制器上加密绑定的密码?有办法吗?

我的 5 美分参与讨论:

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

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

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

  • 使用 https

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

(如果您使用 https,则浏览器不应允许您对 http 资源发出 ajax 调用,并且如果证书不是 sigend 且未为站点添加例外,则 https 请求将失败)

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

5) Ofc。这完全取决于您的应用程序所需的安全级别。如果您真的担心有人在离开机器时拿到密码,则应考虑使用不同的身份验证方法,例如:客户端证书(在智能卡上)或额外的一次性代码,或其他方式相似。