JWT令牌安全

时间:2018-06-03 03:47:05

标签: spring-boot spring-security jwt

由于JWT令牌通过标头发送以验证用途,因此用户只需检查chrome dev工具中的Web调用并复制粘贴令牌并使用它来访问公开的API。

例如,如果我使用此令牌创建记录,恶意用户可以使用相同的令牌(通过使用上述方式)在数据库中创建新记录。

如何阻止这种情况发生?使用Token Encryption和服务器的公钥来阻止这个吗?

2 个答案:

答案 0 :(得分:3)

令牌代表用户身份。通常,用户可以查看自己的令牌。 令牌在服务器上验证。通常没有简单的伪造令牌的方法。使用无法自己生成新令牌。

浏览器和服务器之间的通信应通过TLS完成。然后没有第三方能够看到令牌。

如果您的用户允许其他人访问他的浏览器,那么是,另一个人可以访问该令牌并稍后在另一台计算机上使用它,此令牌尚未过期。但这并不是特定于令牌的,这就像是允许访问您的密码到其他人。

答案 1 :(得分:2)

可以采取以下几个步骤:

  1. 您应该使用https连接而不是http连接。这将加密发送到服务器或从服务器接收的消息。因此,如果中间的人抓住你的数据包,他就无法做任何事情,因为消息是加密的。

  2. 根据您的应用行为,为jwt token添加短时有效期。

  3. 为自签名令牌验证添加适当的密钥大小。 AES密钥短于128位,或RSA密钥短于1024位,对于传统apps.2048位加密现在流行一天。
  4. HSM (Hardware Security Module)可用于签名和加密任务,而无法从操作系统或软件级别访问密钥。
  5. 你应该深入挖掘更多here [jwt令牌OWASP的备忘单]。