如何在 Angular 4 中处理安全会话
Posted
技术标签:
【中文标题】如何在 Angular 4 中处理安全会话【英文标题】:How to handle secure session in angular 4 【发布时间】:2018-08-15 15:07:16 【问题描述】:我是 angular 4 的新手。我的问题是如何处理 angular4 中的安全性。我正在使用 REST Web 服务和 JWT 令牌获取用户信息。
我的登录流程是:
用户登录 -> 返回 JWT 令牌 -> 存储在本地存储/会话中 存储。
向每个请求发送此 JWT 令牌。
现在,如果我在其他浏览器中复制此令牌,它将显示其他用户的信息。
所以我想如果用户将粘贴令牌复制到其他浏览器/私人窗口然后用户注销。
有什么想法???
【问题讨论】:
不要在这上面浪费时间。在周浏览器/选项卡中复制令牌/会话/cookies 始终是可能的。 @Robin Dijkhof 那么我如何处理会话?? 我现在不明白你的问题。你想用会话做什么? 【参考方案1】:服务器无法检测用户是否将 JWT 复制到另一个浏览器。例如。您可以将用户代理存储在 JWT 中,并检查来自 HTTP 请求的用户代理字符串是否与 JWT 相同,但这很容易被攻击者规避。
您可以将 JWT 绑定到特定 IP。
【讨论】:
【参考方案2】:总有一种方法可以“窃取”其他用户的 cookie 和令牌,然后将它们粘贴到您的浏览器中,从而窃取用户的会话。 看看XSS。
没有 100% 的防御。
当然,您可以存储一些附加信息,例如MAC
地址或其他信息,并将它们与您的JWT
令牌映射,但基本上,这将毫无意义。
【讨论】:
以上是关于如何在 Angular 4 中处理安全会话的主要内容,如果未能解决你的问题,请参考以下文章
在 Angular2/4/5 中,如何基于基于令牌的身份验证安全地调用 WebAPI 操作
如何使用 javaScript 或 Angular 安全地存储 J.W.T 令牌?