关于JWT安全性问题
来源:11-2 【理解】JWT与单点登录实例解释

萝卜小木头
2021-09-06
老师说JWT是非对称秘钥加密可以视作几乎绝对安全,我有一个问题不太明白,就是假如我作为hacker得到了用户的jwt,然后去到jwt.io的官网用他们的那个工具就直接可以看到用户的payload解密后的内容,这样对用户来说安全么?还是说jwt是保证了hacker无法篡改payload内容,但是无法保证payload的内容加密不可见,这样即使知道payload内容也没办法篡改权限,因为服务器端会对jwt进行解密。虽然https是安全的但是在本地客户端(cookie, local storage)还是有可能泄露掉,所以是需要开发者自己在客户端做好XSS保护,请问我这样理解对么。
写回答
2回答
-
第一个问题,在jwt.io解密(准确来说应该是解码)的确可以得到明文数据,但是在网络传输中,不管使用任何一种传输方式都有可能泄露明文数据,无论哪种方式都是不可避免遇到黑客的。还记得jwt的三个部分吗?头部+主体+签名。jwt的安全性并不体现在对主体数据加密上,而体现在对最后一个部分签名的加密。如果没有拿到私钥,就算在jwt.io上成功解码,你也没有办法使用。
建议你可以重复看一下课程对jwt的理论讲解,尤其是课程对jwt.io的演示过程,看看私钥是如何被使用的。
012021-09-07 -
吉士粉i里脊
2021-10-14
一般jwt只会存用户Id这类的非敏感信息,所以解开也没什么影响。你能篡改jwt的主体,但却无法伪造签名。
112021-10-16