任何人都能解码 JWT Header 和 Payload。只有使用预期配置完成密码学签名和 Claims 验证后,内容才可信。
读取 Header 与 Payload
查看 alg、kid、iss、aud、exp、nbf 等字段,但不要把它们当成真实身份。
header.payload.signature固定允许的算法
不要接受不可信 Header 任意指定的算法,应配置明确白名单。
验证签名密钥
使用与预期签发方和 kid 对应的可信共享密钥或公钥。
验证 Claims
在服务端检查签发方、受众、过期时间、not-before 和业务授权。
要点总结
- 解析出的 Claims 仍是不可信输入。
- 固定算法与可信签发方。
- 授权不能依赖浏览器解析。