欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

JWT 安全实践:签名算法混淆与令牌吊销

发表于:|最后更新:|分类:安全与运维|阅读:1198 次

JSON Web Token(JWT)广泛用于无状态身份认证,但配置不当会引入严重漏洞。

一、算法混淆攻击

早期库允许客户端通过头部 alg 字段指定算法。攻击者将 alg 改为 none 或把 RS256 改为 HS256,利用公钥作为 HMAC 密钥伪造令牌。

json
{
  "alg": "HS256",
  "typ": "JWT"
}

防御方式:服务端固定预期算法,绝不信任头部 alg 字段。

二、令牌吊销难题

JWT 无状态特性导致无法直接注销。常见方案包括:

  • 维护短期黑名单(Redis 存储 jti)
  • 使用短有效期 Access Token + 长效 Refresh Token
  • 在令牌中嵌入版本号,用户改密时递增版本使旧令牌失效