【发布时间】:2021-11-04 15:22:25
【问题描述】:
查看典型的 JWT 令牌,我可以看出标头主要标识了正在使用的签名方案。对于给定的 Web 应用程序,它可能只有一个签名方案,例如 HS256。所以标题只是一个base64表示:
{"typ":"JWT","alg":"HS256"}
静态内容,在客户端和服务器之间来回发送。
为什么我们需要发送一个包含三个部分header.payload.signature 的完整 JWT 令牌?根据我的测试,跳过标题并仅发送 payload.signature 部分即可完成这项工作。在大多数情况下,使用第三方 JWT 库只需要在令牌前添加一个存储的 base64 表示的标头以进行验证,从而在每次往返时节省几十个字节。
在用户-服务器通信中修剪标头是否会引起任何安全问题?我明白这违反了标准,但浏览器无论如何都不在乎。
【问题讨论】:
标签: jwt