我读到在localStorage中保存令牌JWT是一种糟糕的做法。https://dev.to/rdegges/please-stop-using-local-storage-1i04我使用的是ReactJs,另一方面使用NodeJs有一个API Rest。我应该在哪里以及如何保存代币JWT?,在饼干里?
来自智利的Gretting,
如果在cookie和localStorage之间进行选择,那么在安全性方面,两者都有优缺点。如果所有安全属性都设置正确(HttpOnly、secure、SameSite=strict(,cookie确实可以更好地抵御某些攻击。
然而,SameSite属性可能不适用于所有人,也可能无法保护所有功能免受CSRF(跨站点请求伪造(攻击。
HttpOnly将保护值不被JavaScript访问,如果应用程序存在(XSS(跨站点脚本漏洞,这是很好的。然而,任何中等资质的攻击者都可以轻松实现他们想要的目标,而无需访问令牌的实际值。
在localStorage中存储令牌时需要记住的是,当浏览器关闭时,令牌不会被清除,这意味着用户不会因为关闭浏览器而注销——这是许多人所期望的。如果这是一个问题,您可能需要考虑将JWT存储在sessionStorage中。
localStorage似乎很好,因为很多人都在使用localStorage。
如果您想要额外的安全功能您可以缩短代币的使用寿命,例如{30分钟,60分钟}
此外,您可以检查用户的活动状态用户将自动退出