在HTTP数据包(Cookie,标头或JSON)上包含JWT令牌的正确方法

时间:2016-07-19 07:37:59

标签: json http authentication cookies jwt

在HTTP数据包中处理JWT令牌的标准和最安全的方法是什么?

是否正确,JWT不应该被设置为cookie,因为cookie使会话劫持变得微不足道,因为浏览器自动包含它,因此不会通过普通会话ID cookie向JWT令牌提供任何其他值?

那么,JWT令牌是作为标题还是作为JSON属性包含在内,还是这是一个实践问题?

2 个答案:

答案 0 :(得分:0)

Cookie和授权标题都有利弊。

Cookie允许您阻止javascript访问这些值,但如果您只在授权标题中允许,则不需要任何额外的CSRF保护。

Cookie还允许您轻松保护非{j}个请求,例如<img标记。

所以没有正确的答案,也没有标准。你需要弄清楚什么对你很重要。

答案 1 :(得分:-1)

  1. 使用HTTPS
  2. 设置令牌的过期时间尽可能小(5分钟,30分钟,也不是几个月)。
  3. 每次更新旧令牌时使用刷新令牌获取新令牌并更新刷新令牌(当用户登录时,毫无疑问)
  4. 不要在密码中存储密码,信用卡号和任何机密信息(我很害羞,你知道:))
  5. 存储检查权限的所有必要信息(例如,检查ip)。它适用于REST API和水平扩展。而你不再需要cookie))
  6. 我通过标题发送令牌(例如,curl -X GET -H“X-Access-Token:...”localhost:3000)