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