从nodejs在客户端发送JWT令牌是否存在安全风险

时间:2018-02-21 18:30:31

标签: javascript node.js mongodb jwt

我制作了一个API,我必须将jwt令牌发送到客户端

我将用户numberuserID加密为令牌 喜欢

var token = jwt.sign({
                      number: number,
                      userID: userID
                  });

然后我使用res.send({status :'success' , token : token})向客户端发送令牌。

将令牌发送到客户端或分配userIDnumber是否存在任何安全问题,因为这些是非常关键的数据?

1 个答案:

答案 0 :(得分:1)

(请注意,您的问题后面的评论通常是为了获得实际提供答案所需的更多信息。请通过编辑问题回复评论或[通常更好]以澄清所要求的内容评论。)

JWT的基本思想是,虽然任何人都可以阅读它,但除非加密签名部分与少数人知道的秘密匹配以及匹配内容,否则它无效。通常这意味着服务器保存对salt或公钥 - 私钥对的私有部分的引用。在第一种情况下,只有知道该密钥的服务器才能验证JWT。在第二个中,任何有权访问公钥的人都可以对其进行验证,但只有拥有私钥的服务器才能创建它。

真正秘密的数据永远不应该包含在JWT中,因为它们很容易解析。但由于上述原因,您可以在客户端和服务器端将它们用作令牌。只要不包含敏感信息,您就可以输入基本身份和权限信息。因为每次调用服务器时都会重新验证它们,所以客户不会对它们进行更改有严重的担忧。

当然,这一切都取决于您不使用客户端代码创建这些。这将使所有保证失效。

相关问题