工程实践 · 2024 年 12 月
如何审核第三方 JWT 库
在引入新的 JWT 库前,务必验证其默认安全性、算法支持与异常处理,否则将把风险引入自己的系统。
算法灵活性
- 默认算法是否安全?是否允许限制在白名单内?
- 是否阻止从强算法降级到弱算法?
密钥管理
- 支持 JWKS 自动轮换,并能控制缓存过期时间。
- 拉取 JWK 时是否强制 HTTPS,是否支持证书钉扎。
- 是否存在回退逻辑接受未签名 Token。
错误与日志
- 区分签名错误、过期、结构异常等情况。
- 日志中避免输出完整 Token,以免泄露敏感信息。
- 异常能否向上抛出,确保 API 拒绝请求。
测试建议
使用恶意样例测试库表现,例如交换 Header、修改 Payload、注入无效 Base64。JWTSecrets 企业版提供完整测试集。