我读过将令牌JWT保存在localStorage中是一种不好的做法。 https://dev.to/rdegges/please-stop-using-local-storage-1i04 我正在使用ReactJs,另一方面,NodeJs具有API Rest。 我应该在哪里以及如何将令牌JWT保存在Cookie中?
来自智利的
答案 0 :(得分:1)
如果在cookie和localStorage之间进行选择,则在安全性方面都各有利弊。正确设置所有安全属性(HttpOnly,secure,SameSite = strict)后,可以更好地保护cookie免受某些攻击。
但是,SameSite属性可能不适用于所有人,并且可能无法保护所有功能免受CSRF(跨站点请求伪造)攻击。
HttpOnly将保护该值免受来自JavaScript的访问,如果应用程序遭受(XSS)跨站点脚本漏洞,那就很好。但是,任何中等资格的攻击者都可以轻松实现他们想要的目标,而无需访问令牌的实际值。
在将令牌存储在localStorage中时要记住的一点是,在关闭浏览器时不会清除它,这意味着用户不会因关闭浏览器而注销-这是许多人所期望的。如果这是一个问题,则您可能需要考虑将JWT存储在sessionStorage中。
答案 1 :(得分:0)
localStorage看起来不错,因为许多人都在使用localStorage。
如果您想要额外的安全功能 您可以缩短令牌寿命,例如{30分钟,60分钟}
还可以检查用户的活动状态 用户将自动注销