由于JWT令牌通过标头发送以验证用途,因此用户只需检查chrome dev工具中的Web调用并复制粘贴令牌并使用它来访问公开的API。
例如,如果我使用此令牌创建记录,恶意用户可以使用相同的令牌(通过使用上述方式)在数据库中创建新记录。
如何阻止这种情况发生?使用Token Encryption和服务器的公钥来阻止这个吗?
答案 0 :(得分:3)
令牌代表用户身份。通常,用户可以查看自己的令牌。 令牌在服务器上验证。通常没有简单的伪造令牌的方法。使用无法自己生成新令牌。
浏览器和服务器之间的通信应通过TLS完成。然后没有第三方能够看到令牌。
如果您的用户允许其他人访问他的浏览器,那么是,另一个人可以访问该令牌并稍后在另一台计算机上使用它,此令牌尚未过期。但这并不是特定于令牌的,这就像是允许访问您的密码到其他人。
答案 1 :(得分:2)
可以采取以下几个步骤:
您应该使用https
连接而不是http
连接。这将加密发送到服务器或从服务器接收的消息。因此,如果中间的人抓住你的数据包,他就无法做任何事情,因为消息是加密的。
根据您的应用行为,为jwt token
添加短时有效期。
AES
密钥短于128位,或RSA
密钥短于1024位,对于传统apps.2048位加密现在流行一天。HSM (Hardware Security Module)
可用于签名和加密任务,而无法从操作系统或软件级别访问密钥。你应该深入挖掘更多here [jwt令牌OWASP的备忘单]。