【问题标题】:Where and how save token JWT ? (Best Practice)在哪里以及如何保存令牌 JWT ? (最佳实践)
【发布时间】:2020-07-18 14:32:25
【问题描述】:

我读过在 localStorage 中保存令牌 JWT 是一种不好的做法。 https://dev.to/rdegges/please-stop-using-local-storage-1i04 我正在使用 ReactJs,而另一方面,我正在使用 NodeJs 的 API Rest。 我应该在哪里以及如何将令牌 JWT 保存在 Cookie 中?

来自智利的问候,

【问题讨论】:

  • localStorage 对我来说似乎很好。
  • 你从哪里读到的,他们给出了什么理由?
  • 我编辑了帖子并添加了链接。
  • @Nik020 谢谢。我认为这篇文章非常具体地说明了你应该使用什么,不是吗?顺便说一句,如果你同意那篇文章中的论点,你也可能会被说服not use JWTs at all

标签: javascript security browser jwt


【解决方案1】:

localStorage 看起来不错,因为很多人都在使用 localStorage。

如果您想要额外的安全功能 您可以缩短令牌的生命周期,例如 {30 min, 60 min}

您还可以检查您的用户活动状态是否 用户将自动注销

【讨论】:

  • 现在。我正在使用令牌 jwt (access_token) 和 refresh_token,但根据文本,即使这样也是不好的做法。
【解决方案2】:

如果在 cookie 和 localStorage 之间进行选择,那么在安全性方面两者各有利弊。正确设置所有安全属性(HttpOnly、secure、SameSite=strict)确实可以更好地保护 cookie 免受某些攻击。

但是,SameSite 属性可能并不适用于所有人,并且可能无法保护所有功能免受 CSRF(跨站点请求伪造)攻击。

HttpOnly 将保护该值不被 JavaScript 访问,如果应用程序遭受 (XSS) 跨站点脚本漏洞,这是很好的。但是,任何中等资质的攻击者都可以轻松实现他们想要的,而无需访问令牌的实际价值。

在 localStorage 中存储令牌时要记住的是,当浏览器关闭时它不会被清除,这意味着用户不会因为关闭浏览器而注销——这是许多人所期望的。如果这是一个问题,您可能需要考虑将 JWT 存储在 sessionStorage 中。

【讨论】:

    猜你喜欢
    • 2016-03-15
    • 2012-12-04
    • 2020-05-02
    • 2021-12-26
    • 2012-06-28
    • 1970-01-01
    • 2019-04-25
    • 2018-06-08
    • 2020-11-03
    相关资源
    最近更新 更多