在何处以及如何保存令牌JWT? (最佳实践)

时间:2020-04-06 14:44:54

标签: javascript security browser jwt

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

来自智利的

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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

如果您想要额外的安全功能 您可以缩短令牌寿命,例如{30分钟,60分钟}

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