Spring boot JWT令牌安全

Spring boot JWT令牌安全,spring-boot,spring-security,jwt,Spring Boot,Spring Security,Jwt,由于JWT令牌通过标头发送以验证使用情况,用户只需在chrome开发工具中检查web调用并复制粘贴令牌并使用它访问公开的API即可 例如,如果我使用此令牌创建记录,恶意用户可以使用相同的令牌(通过使用上述方法)在数据库中创建新记录 我怎样才能阻止这种事情发生?使用带有服务器公钥的令牌加密是停止此操作的方法吗?令牌表示用户身份。这是正常的,用户可以查看自己的令牌。 在服务器上验证令牌。通常,伪造代币并不容易。Use无法自行生成新令牌 浏览器和服务器之间的通信应通过TLS完成。那么第三方将无法看到令

由于JWT令牌通过标头发送以验证使用情况,用户只需在chrome开发工具中检查web调用并复制粘贴令牌并使用它访问公开的API即可

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


我怎样才能阻止这种事情发生?使用带有服务器公钥的令牌加密是停止此操作的方法吗?

令牌表示用户身份。这是正常的,用户可以查看自己的令牌。 在服务器上验证令牌。通常,伪造代币并不容易。Use无法自行生成新令牌

浏览器和服务器之间的通信应通过TLS完成。那么第三方将无法看到令牌


如果您的用户将其浏览器的访问权授予其他人,则是的,其他人可能会访问该令牌并在其他计算机上使用它,如果该令牌尚未过期。但这并不特定于令牌,这就像将密码授予smb else一样。

可以采取以下步骤:

  • 您应该使用
    https
    连接,而不是
    http
    连接。这将加密发送到服务器或从服务器接收的消息。所以如果中间的人抓住了你的数据包,他不能做任何事情,因为消息是加密的。
  • 根据您的应用程序行为,为jwt令牌添加一个短时间有效期

  • 为自签名令牌验证添加适当的密钥大小
    AES
    密钥短于128位,或
    RSA
    密钥短于1024位,用于传统应用程序。2048位加密现在非常流行
  • 当无法从操作系统或软件级别访问密钥时,可引入用于签名和加密任务

  • 您应该深入挖掘更多[jwt token OWASP的备忘单]。

    感谢您对允许用户访问浏览器这一点的澄清。我在考虑JWT的时候忽略了这一点。