我正在阅读“ https://stormpath.com/blog/token-auth-spa ”和“ https://paragonie.com/blog/2015/04/secure-authentication-php-with-long-term-persistence ”(除其他外:-))我想避免的是盲目地使用我能想到的所有安全措施,只是为了感觉更安全。像散列哈希“以防万一”之类的东西。
我现在拥有的(通过 MEAN 示例的第 3 天)——我有 JWT 令牌(用户的 ID)+ 到期日期。所以令牌不会永远存在。此令牌存储为 cookie 以获得“记住我”功能。
这里让我烦恼的是缺少服务器添加到组合中的随机数据,所以安全,不安全,但它是非常确定性的设置(请参阅我链接的第二篇文章)。
所以我想知道 JWT 令牌是否不如“经典”会话令牌安全——我正在考虑这样的设置:
- 用户登录,像以前一样创建 JWT 令牌,也创建会话令牌(id + 随机数),随机数的哈希存储在数据库中(当然设置了到期日期)
- 对于正常工作,使用 JWT 令牌(它不用于“记住我”)
- 会话令牌用于“记住我”,它存储为 cookie
当用户返回时,“记住我”会启动,而不是登录,使用带有会话令牌的 cookie 来授权用户,成功时会创建 JWT。
所以会有三个“层”:
- 登录名+密码——时间无限使用
- 会话令牌(“记住我”)——长期使用
- JWT 令牌——短期使用,仅用于当前工作
我的问题是——我使用唯一 JWT 的第一种方法是否不太安全?或者换句话说 - 如上所述添加“会话令牌”是我让这个设置更安全还是只是让更多混乱?:-)