首页 > 解决方案 > 2019 年我应该在哪里存储我的 JWT,localStorage 真的不安全吗?

问题描述

有趣的话题。由于我正在使用Node.js ApiReact Redux 客户端创建我的第一个真正更大的项目,因此我需要身份验证。

现在,我不知道如何“以正确的方式”处理身份验证。

由于我阅读了许多有关它的主题,但意见不同。

所以一开始有人立刻说:不要将 localStorage 与 JWT 一起使用。

例如这里有一篇文章:https ://dev.to/rdegges/please-stop-using-local-storage-1i04

这是 auth0 的另一篇文章:https ://auth0.com/docs/security/store-tokens

但后来我深入挖掘了广泛的身份验证世界,我发现很多人说:

“localStorage 和 cookie 一样安全”

例如从第一篇文章第一条评论,第三条回复(这里有一个链接:https ://dev.to/jondubois/comment/373l )

我的意思是他说得对吗?在阅读了该文章以及其他一些文章和评论后,如果您不是拥有非常敏感数据的银行,那么将其存储在 localStorage 中是完全可以的。

所以我在 2019 年,不是初学者,也不是经验丰富的开发人员,我问自己我应该如何实现这个身份验证流程,而不会过于复杂(例如,有一些流程用于将 jwt 存储到 httpOnly cookie 中)但是在另一方面也不是很容易破解。

我正在尝试创建一个论坛应用程序。您可以注册,创建自己的论坛,然后其他用户可以注册此论坛。所以基本身份验证,我只需使用 JWT 发送 user_id 和令牌。

我非常感谢您的意见和建议。

标签: javascriptreactjssecuritysessionauthentication

解决方案


我也在寻找这个答案,最后,我发现了关于 JWT 令牌安全性的非常有趣和有用的文章,即:
- https://security.stackexchange.com/questions/179487/store-splitted-jwt- for-csrf-protection-and-refresh-strategy
- https://medium.com/@jcbaey/authentication-in-spa-reactjs-and-vuejs-the-right-way-e4a9ac5cd9a3
TL;DR 你应该存储第一部分带有参数的 cookiehttpOnly: true中的令牌和不带参数的 cookie 中的其余令牌,httpOnlyJavascript 可以在浏览器中获取和使用您的 JWT 有效负载信息。


推荐阅读