写在前面:合法学习边界
本文只讲原理和防御。请不要在真实系统中伪造、猜测、暴力破解或滥用 JWT。所有验证都应在授权靶场或明确授权环境中完成。
一、JWT 是什么
JWT(JSON Web Token)是一种用于声明式传递身份和权限信息的令牌格式。它由三部分组成:
| |
通常以 xxx.yyy.zzz 形式出现。
二、JWT 的核心问题
JWT 本身解决的是“身份声明”的传递,不等于完整的安全模型。
常见误解:
| |
真正需要同时满足:
| |
三、常见风险
| |
影响与危害
JWT 相关问题能造成:
| |
风险等级:中到高。
四、防御建议
1. 固定签名算法
不要允许客户端随意选择算法。
2. 密钥安全
使用足够强度的密钥并定期轮换。
3. 设置过期时间
token 要有合理有效期。
4. 权限仍在服务端校验
JWT 只能携带声明,不应替代授权判断。
5. 支持撤销和吊销
高风险场景需要撤销机制。
修复
| |
五、报告中的正确写法
示例:
| |
六、小结
JWT 是工具,不是安全边界。它最适合做“可验证声明”,但权限、撤销和风险控制仍要在服务端完成。