2016-08-17 41 views
1

假设我为用户创建一个JWT令牌,并设置有效载荷为:智威汤逊:我有多少可以信任我的有效载荷

['userID'=>1, 'role'=>'user'] 在使用HTTPS和SSL的情况下,它是安全的发送角色或任何其他敏感信息通过负载?发送者有可能操纵有效负载值吗?

UPDATE:现在我知道JWT令牌是可解码的。但是因为它们带有一个签名,所以对这些值的任何更新都会使该令牌无效。如果您希望有效负载完全加密,请尝试使用JWE

回答

1

JWT令牌由发卡行进行数字签名,因此无需修改签名即可对其进行修改。

HTTPS仅用于防止令牌被盗。

2

有效负载中的声明无法用键处理,常见示例是admin = false,客户端和服务器都可以看到该用户不是管理员。如果用户试图操纵令牌(成为管理员),它将无法正确验证。这就是为什么在阅读他们的任何声明之前验证你的代币至关重要。

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

有此操作令牌https://jwt.io/

+0

那么,所有的权利,以消费者为纯文本可见的一出戏?我的意思是,如果一个令牌编码为ugly1.ugly2.ugly3字符串,并且秘密不会泄露给消费者,那么如何解密有效载荷? – HPM

+0

查看堆栈溢出文档[JSON Web Tokens介绍](http://stackoverflow.com/documentation/jwt/5213/introduction-to-json-web-tokens/18559/signed-jwt-jws#t = 201608220422564473964)。他们是base64编码的,你不需要一个密钥来解码。 (Google:base64解码) – Alex