Jwt 依赖cookie或令牌时是否必须使用https

Jwt 依赖cookie或令牌时是否必须使用https,jwt,Jwt,我正在学习各种javascript/auth教程——我了解salt密码并将其存储在DB中,使用Passport,生成令牌并将其存储在请求头中,等等。总体而言,我了解了整个注册和登录流程。但我不确定为什么在任何教程中都没有提到以下内容:如果我可以查看网络上的http流量,我不能窃取其他人的令牌并“模拟”该用户吗?我将无法解密令牌,因为我没有用于生成令牌的“秘密短语”,但我肯定可以“照原样”使用它? 那么,令牌和https一起使用吗?我对通过令牌进行用户模拟的理解正确吗?谢谢你作为截获JWT的人你

我正在学习各种javascript/auth教程——我了解salt密码并将其存储在DB中,使用Passport,生成令牌并将其存储在请求头中,等等。总体而言,我了解了整个注册和登录流程。但我不确定为什么在任何教程中都没有提到以下内容:如果我可以查看网络上的http流量,我不能窃取其他人的令牌并“模拟”该用户吗?我将无法解密令牌,因为我没有用于生成令牌的“秘密短语”,但我肯定可以“照原样”使用它?
那么,令牌和https一起使用吗?我对通过令牌进行用户模拟的理解正确吗?谢谢你作为截获JWT的人你

  • 。。。能够“解密”JWT,因为它没有加密。它只有Base 64编码
  • 。。。如果使用非对称方案并且您知道公钥,则可以验证签名
  • 。。。可以使用JWT模拟用户
  • 。。。无法更改JWT中的声明,因为此时服务器会注意到签名不再有效
所以,是的,使用HTTPS

另外,在服务器端,不要只依赖JWT。检查一下

  • 。。。它不在吊销代币的黑名单上(你有这样的名单,不是吗?)
  • 。。。请求来自JWT中声明的网络地址(您包括发出JWT的网络地址,不是吗?)

令牌不一定是加密的,https也可以防止重播攻击。支持https的原因有很多,所以是的,你应该使用它而不是https,这非常有用