编码与安全指南

JWT 验证:签名、有效期、签发方与受众

使用约定密钥验证 HS256,再单独校验声明,不能把解码或验签当作完整授权。

Nav Tools ·

解码用于观察

无需密钥就能查看 header 和 payload,攻击者同样可以构造包含任意声明的可读载荷。

研究格式时使用合成 Token,不能因为解码 JSON 中出现角色或用户 ID 就接受授权。

header.payload.signature
Decoded claims are observations, not authorization.

固定算法与密钥来源

应用必须限定约定算法并从可信来源取得密钥,不能由不可信 header 任意决定验证方式。

本站使用输入的共享密钥验证 HS256,不提供 RSA、ECDSA 或 OpenID Connect 密钥发现验证。

声明需要单独验证

签名有效说明该密钥认证通过,仍需按协议校验 issuer、audience、expiration、not-before。

JWT exp、nbf 使用 NumericDate 秒而非 JavaScript 毫秒,应约定小范围时钟容差,不能跳过时间校验。

验证失败路径

在实际认证库中测试错误密钥、篡改载荷、过期 Token 和错误受众,分别确认拒绝原因。

本站 HS256 结果只覆盖签名,完整声明校验和授权策略应保留在接收 Token 的服务中。

参考资料

← 编码与安全指南