相关疑难解决方法(0)

使用AngularJS进行身份验证,使用REST Api WS进行会话管理和安全性问题

我开始使用angularJS开发一个web应用程序,我不确定一切都是正确的安全(客户端和服务器端).安全性基于单个登录页面,如果检查完凭证,我的服务器会发回一个具有自定义时间有效性的唯一令牌.所有其他REST api都可以通过此令牌访问.应用程序(客户端)浏览到我的入口点ex:https://www.example.com/home.html用户插入凭据并接收一个唯一令牌.此唯一令牌使用AES或其他安全技术存储在服务器数据库中,不以明文格式存储.

从现在开始,我的AngluarJS应用程序将使用此令牌对所有暴露的REST Api进行身份验证.

我正在考虑将令牌临时存储在自定义的http cookie中; 基本上,当服务器验证凭据时,它会发回一个新的Cookie Ex.

app-token : AIXOLQRYIlWTXOLQRYI3XOLQXOLQRYIRYIFD0T
Run Code Online (Sandbox Code Playgroud)

该cookie具有安全HTTP Only标志设置.Http协议直接管理新cookie并存储它.连续请求将使用新参数呈现cookie,而无需管理它并使用javascript存储它; 在每次请求时,服务器使令牌无效并生成一个新令牌并将其发送回客户端 - >使用单个令牌防止重放攻击.

当客户端从任何REST Api 收到HTTP状态401未授权响应时,角度控制器清除所有cookie并将用户重定向到登录页面.

我应该考虑其他方面吗?将令牌存储在新cookie或localStorage中更好吗?有关如何生成唯一强令牌的任何提示?

编辑(改进):

  • 我决定使用HMAC-SHA256作为会话令牌生成器,有效期为20分钟.我生成一个随机的32字节GUID,附加一个时间戳并通过提供一个40字节的密钥来计算HASH-SHA256.由于令牌有效性非常小,因此很难获得冲突.
  • Cookie将具有域和路径属性以提高安全性.
  • 不允许多次登录.

authentication cookies rest angularjs angularjs-authentication

66
推荐指数
2
解决办法
8万
查看次数