技术文摘
JWT:众多技术大牛缘何不推荐你使用?
2024-12-30 17:01:48 小编
JWT:众多技术大牛缘何不推荐你使用?
在当今的技术领域,JWT(JSON Web Token)作为一种常见的认证和授权机制,却遭到了众多技术大牛的不推荐。这究竟是为什么呢?
JWT 一旦签发,在有效期内无法撤销。这意味着,如果用户的权限发生了变化或者其账户被怀疑存在风险,由于无法实时吊销已签发的 JWT,可能会带来安全隐患。相比之下,传统的基于会话的认证方式,可以在服务器端灵活地控制会话的有效性。
JWT 通常包含了用户的相关信息,以明文形式存储在客户端。尽管这些信息是经过签名的,防止篡改,但如果 JWT 被窃取,攻击者能够直接获取其中的敏感数据。这与将用户数据安全地存储在服务器端的做法相比,风险明显增加。
JWT 的长度可能较长,特别是当包含了较多的用户信息时。这会增加网络传输的开销,对于移动应用等对网络性能敏感的场景,可能会影响用户体验。
另外,JWT 的验证需要在资源服务器上进行,这就要求资源服务器能够正确地验证签名和处理 JWT 的逻辑。如果多个服务都需要进行 JWT 的验证,就需要在每个服务中都实现相同的验证逻辑,增加了开发和维护的复杂性。
而且,对于一些需要在服务器端动态修改用户权限或数据的场景,JWT 由于其自包含的特性,难以满足这种灵活的需求。
虽然 JWT 在某些场景下具有一定的优势,但由于其存在的无法撤销、安全风险、性能开销、验证复杂性以及灵活性不足等问题,使得众多技术大牛对其使用持谨慎态度。在选择认证和授权机制时,开发者应根据具体的业务需求和安全要求,综合考虑各种因素,而不是盲目地采用 JWT 。只有这样,才能构建出安全、可靠、高效的应用系统。
- 如何中止 Promise:有趣的问题探讨
- 我所发现的大厂 OpenApi 接口 bug,你呢?
- 探讨分布式本地缓存的刷新策略
- ASP.NET Core 中优雅处理多接口实现,你掌握了吗?
- Python 高效列表推导式的十大秘籍
- Netty 基础上的 Lettuce 对 RESP 协议的解析方式
- Type 与 Object 关联下的类型对象深入分析
- 深入解析 Java 引用类型:强引用、软引用、弱引用与幻象引用的巧妙运用
- 计算自身程序时间复杂度的方法
- 15 个鲜为人知的 CSS 属性
- 三种请求合并技巧,让性能飙升!
- 利用 Puppeteer 达成前端 SSR 完美接入策略
- Python 装饰器、类方法扩展及元类实例管理
- 跨域全面解析与 Spring Boot 3 的跨域解决办法
- Python 处理大数据集,别以为你会用 Pandas