【发布时间】:2015-08-02 15:02:03
【问题描述】:
我一直在阅读有关 JSON Web Tokens 的内容,一些问题突然出现在我的脑海中。我已经阅读了很多关于我们应该如何从基于会话的方法转向 JWT 的说法。我更多地考虑的是 Node JS 后端,它为 UI 和移动设备公开 API。
声明:JWT 不要求您为每个 http 请求与您的键值数据存储进行通信。
问题 1:我不能为所有用户拥有一个私钥(如果我只有一个私钥会有什么安全风险?)。那么无论如何我都需要一个数据库。
声明:JWT 在每次请求时发送令牌。因此我们不需要在会话中存储任何数据,例如“姓名、电子邮件”,而是可以驻留在令牌本身上。
问题 2:负载的大小不会增加吗,因为它们会为每个请求发送并且还包含数据?
声明:您可以使用相同的方法进行移动身份验证以及 Web UI 身份验证。
问题 3:由于服务器现在必须解密令牌并与服务器通信,这对 Web UI 来说不是开销吗?
Claim : 将令牌传递给 JS 并将令牌存储在 sessionStorage 或 localStorage 中。
问题 4:由于 sessionStorage 中没有“httpOnly”的概念,这不是安全问题吗? chrome插件也可以通过获取token并登录来规避安全吗?
最后,除了 CRSF 问题,在 UI 和 Mobile Auth 之间共享代码以及 CSRF 的好处之外,我真的没有看到当前基于会话的机制有什么好处。我的想法对吗?
另外,与传统的基于会话的系统相比,JWT 有哪些缺点?
【问题讨论】:
标签: security session authentication oauth-2.0 json-web-token