惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
P
Proofpoint News Feed
L
LINUX DO - 热门话题
P
Palo Alto Networks Blog
A
About on SuperTechFans
T
Tenable Blog
M
MIT News - Artificial intelligence
IT之家
IT之家
I
Intezer
D
DataBreaches.Net
爱范儿
爱范儿
T
Threatpost
C
CERT Recently Published Vulnerability Notes
云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
K
Kaspersky official blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Y
Y Combinator Blog
Cyberwarzone
Cyberwarzone
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
Spread Privacy
Spread Privacy
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
AWS News Blog
AWS News Blog
博客园 - 聂微东
C
Check Point Blog
S
Securelist
有赞技术团队
有赞技术团队
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
D
Docker
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tailwind CSS Blog
L
Lohrmann on Cybersecurity
G
Google Developers Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog

博客园 - 漫漫人生路总会错几步

一种非常巧妙的设计模式 【流量密码】LVS与nginx对比 【架构升华】:数据库是性能的物理终点 【轻量化交付宣言】:DevOps 的本质是工程化,而非工具化 【微服务】是【必须品】吗? PGSQL 1主2从数据库架构与单节点分3库在三块磁盘理论上限畅想(未测试) 相同的硬件,各个数据库专家比赛畅想 maven 原型项目 mysql9.5安装文档 微信图片批量保存的办法 win平台利用winsw将php-cgi作为系统服务,支持服务的正常启动/停止/重启 利用WinSW将Nginx 作为可正常启动/停止的windows服务 JPA使用pg数据库时,bool字段不能跨库迁移的解决方案 【ubuntu】程序运行时的任务栏图标 跨网段通信实战(支持静态路由表的家用路由) Linux系统Mariadb初始化相关(ubuntu) springboot 整合webservice 相关说明 tomcat 服务版本内存设置 navicat连接mysql8报错
【JWT】真的好吗?
漫漫人生路总会错几步 · 2026-02-28 · via 博客园 - 漫漫人生路总会错几步

跟人认为,它是弊大于利的一种方案

1. 关于“明文”与 JWE 的权衡

  • JWT 的 Payload 只是 Base64 编码,必须用 JWE 加密,但 JWE 性能开销大。
  • JWT 的初衷是“防篡改”而非“防泄露”。如果 Payload 包含敏感数据(如手机号、余额),必须加密。但加密/解密是 CPU 密集型操作。在高并发场景下,单机处理 JWT 签名校验+解密的吞吐量,远低于简单读取内存中的 Session。
  • 结论:如果你必须保护 Payload 内容(除非你真的就只是放一些非常简单非常不重要的信息,否则jwe几乎是必须的),JWT 的优势(无状态)会被加密性能损耗抵消,流量一大,CPU 直接被加密算法吃满

2. 关于 LocalStorage 与跨域

  • LocalStorage 不支持跨域,SSO 最终绕不开 Cookie。
  • JWT 方案在浏览器端通常存放在 LocalStorage,这导致它天然无法直接在 a.com 和 b.com 之间共享。
  • 目前的 JWT SSO 方案(如 OIDC),通常是跳转到统一认证中心(CAS),该中心依然是靠 Cookie 识别用户。拿到 Token 后,再通过 URL 回传给子系统。
  • 尴尬点:既然最后还是要靠认证中心的 Cookie 来维持登录态,那为什么不直接给子系统发物理 Session Cookie 呢?

3. JWT 真正的“原罪”:撤销与续期

JWT 还有一个被诟病最多的问题:不可撤销性。

  • Cookie/Session:服务端想让踢掉某个会话,直接删掉 Redis 里的 Session 即可。
  • JWT:除非等到过期,否则无法单方面吊销。为了实现“强踢”或“黑名单”,不得不引入 Redis 来记录失效的 Token。
  • 悖论:一旦引入 Redis 做校验,JWT “无状态、不需要查库”的核心优势就彻底消失了,此时它本质上就是一个“自带数据的特殊 Session ID”。

4. 什么时候 JWT 才是“利大于弊”?

虽然它弊大于利(在传统 Web 开发中确实如此),但在以下两种场景,它是无法替代的:

  1. 微服务间的内部通信:网关鉴权后,将用户信息封装进 JWT 传给后端微服务。后端微服务无需再查数据库/Redis,直接解析 JWT 即可获取权限,极大降低了微服务间的耦合和网络 IO 开销。
  2. 移动端/非浏览器客户端:App 没有 Cookie 机制,处理 Header 里的 Authorization: Bearer <Token> 比模拟 Cookie 行为要自然得多