我在我的节点js服务器上使用jsonwebtoken,在jsonwebtoken里面我存储了用户的角色。
所以每次他做一个请求我都要检查是否在令牌中给出了所需的角色。但人们可以改变这个角色吗?我知道每个人都可以看到它,但我想没有人可以在没有我的秘密的情况下改变它,对吗?
当然我总是检查jsonwebtoken是否正确签名。你认为这种方法看起来不错吗?对不起,英语不是我的主要语言
如果您更改jwt数据然后使用不同的签名对其进行哈希,那么您的服务器将知道它是一个假令牌。
还要确保你使用https,这样你的令牌就无法用于嗅探。
如果您将令牌存储在cookie中,请确保将cookie放入http-only以防止cookie劫持
我还建议你使用csrf令牌来防止csrf攻击
我猜您将jwt存储在客户端的Cookie或LocalStorage中。 因此,用户可以删除或更改cookie,但如果没有您的秘密,他就无法阅读。
因此,如果他尝试更新令牌,它可能会从服务器端损坏并且无法读取。
如果令牌已损坏,您可能希望注销用户并将其重定向到登录页面。