博客
安全2026 年 5 月 27 日

JWT 安全最佳实践

JSON Web Token (JWT) 是现代 API 鉴权的流行方案。它由 Header、Payload 和 Signature 三部分组成,用点号连接。理解 JWT 的安全模型对构建可靠系统至关重要。

永远不要信任未验证的 Payload

JWT 的 Payload 仅经过 Base64 编码,未加密。任何人都可以解码查看内容,甚至篡改 Payload 后重新编码(但无法伪造有效签名)。服务端必须验证 Signature,且使用强密钥(HS256)或公私钥(RS256)。

WaiHub 的 JWT 解码器仅用于开发调试,帮助查看 Token 内容与 exp 是否过期。生产环境必须在服务端完成签名验证。

设置合理的过期时间

Access Token 应设置较短过期时间(如 15 分钟至 1 小时),配合 Refresh Token 实现无感刷新。避免签发永不过期的 Token。在 Payload 中使用 exp 声明过期时间,服务端严格校验。

敏感信息勿放入 Payload

JWT Payload 可被任何人解码,切勿存放密码、信用卡号等敏感数据。仅存放用户 ID、角色等必要鉴权信息。

使用 HTTPS 传输

JWT 通常通过 Authorization: Bearer 头或 Cookie 传输。必须使用 HTTPS 防止中间人截获 Token。若存储在 Cookie 中,应设置 HttpOnly 和 Secure 标志。