首页 文章

JWT访问令牌和刷新令牌安全性

提问于
浏览
1

我正在使用前端Reactjs和后端SpringBoot(REST)创建一个应用程序 .

我想使用JWT令牌来保证安全 . 由于窃取JWT刷新令牌的安全问题可能意味着,我想问你以下场景是否有效:

  • 后端

  • 登录时创建access-JWT和refresh-JWT
    在有效负载部分的

  • 中设置相同的唯一UUID(因此我在它们之间创建"link") .

  • 在DB中保存refresh-JWT的hashCode(用于将来的有效性检查)

  • 在body access-JWT和cookie refresh-JWT中作为响应返回 .

  • 前端

  • 在本地存储中存储访问权限-JWT

  • 将refresh-JWT存储为cookie

现在,在每个来自前端的请求中,我将对两个令牌(access-JWT in header和refresh-JWT as cookies)进行处理 . 如果它们具有相同的唯一UUID,我会检查它们 . 如果他们这样做,我将继续他们的验证过程 .

这样做我正在努力消除XSS和CSRF攻击,假设那些不会同时完成 . 因此,如果访问-JWT被盗,攻击者将无法刷新-JWT,反之亦然 .

请分享你的想法 . 谢谢 .

1 回答

  • 0

    您应该避免发明自己的身份验证/会话管理方案,因为微小的细节可能会破坏整个系统的安全性 .

    引自Auth0的Which OAuth 2.0 flow should I use?

    此外,应该注意隐式授权不返回刷新令牌,因为浏览器无法将其保密(请参阅SPA和刷新令牌面板以获取解决方法) .

    我建议使用标准的OpenID Connect(或OAuth 2.0)流程 - 在您的情况下 implicit flow .

相关问题