### JWT 有哪些漏洞 **1. 算法混淆攻击** - 原理:服务器使用 RS256(非对称加密)验证令牌,但攻击者将算法头部改为 HS256(对称加密),并利用服务器公钥作为 HMAC 密钥签名令牌。 - 利用条件:服务器未严格校验算法类型,且公钥可获取 - 攻击步骤: 1. 获取服务器公钥(通常从 `/jwks.json` 或重复使用 SSL 证书) 2. 修改 JWT 头部:`"alg":"HS256"` 3. 使用公钥作为密钥生成 HMAC 签名 4. 服务器用公钥解密(误认为是 HMAC 密钥)→ 验证通过 **2. none 算法攻击** - **原理**:将 `alg` 头部设为 `none`,使服务器跳过签名验证 - **利用**:直接删除签名部分,修改 Payload 内容 - **防御**:现代 JWT 库默认禁用 `none`,但配置错误可能启用