关于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回答

阿莱克斯刘

2021-09-07

第一个问题,在jwt.io解密(准确来说应该是解码)的确可以得到明文数据,但是在网络传输中,不管使用任何一种传输方式都有可能泄露明文数据,无论哪种方式都是不可避免遇到黑客的。还记得jwt的三个部分吗?头部+主体+签名。jwt的安全性并不体现在对主体数据加密上,而体现在对最后一个部分签名的加密。如果没有拿到私钥,就算在jwt.io上成功解码,你也没有办法使用。

建议你可以重复看一下课程对jwt的理论讲解,尤其是课程对jwt.io的演示过程,看看私钥是如何被使用的。

0
1
萝卜小木头
非常感谢!
2021-09-07
共1条回复

吉士粉i里脊

2021-10-14

一般jwt只会存用户Id这类的非敏感信息,所以解开也没什么影响。你能篡改jwt的主体,但却无法伪造签名。

1
1
萝卜小木头
谢谢~懂了
2021-10-16
共1条回复

.Net 开发电商后端API 从0到精通RESTful

. Net 实战+RESTful思想纵深课程,开发优雅RESTful风格API。

977 学习 · 547 问题

查看课程