JWT:我可以信任多少我的有效载荷

时间:2016-08-17 22:41:04

标签: security authentication jwt

假设我为用户创建了一个jwt令牌,并将有效负载设置为:

['userID'=>1, 'role'=>'user'] 如果使用HTTPS和SSL,通过有效负载发送角色或任何其他敏感信息是否安全?发件人是否可以操作有效负载值?

更新:现在我知道JWT令牌是可解码的。但由于它们带有签名,因此对值的任何更新都将使令牌无效。如果您希望有效负载完全加密,请尝试 JWE

2 个答案:

答案 0 :(得分:3)

有效负载中的声明无法通过密钥进行操作,常见示例为admin = false,客户端和服务器都可以看到此用户不是管理员。如果用户试图操纵令牌(成为管理员),则无法正确验证。这就是为什么在阅读任何声明之前验证您的令牌非常重要的原因。

但是,您通常不会在其中放置敏感信息(如信用卡号),因为声明未加密但是没有人能够访问您的令牌,否则他们将能够接管您的会话。

在这里操作令牌玩https://jwt.io/

答案 1 :(得分:2)

JWT令牌由发行者进行数字签名,因此在不使签名无效的情况下不能修改它们。

只需要HTTPS来防止令牌被盗。