首页 > 解决方案 > 在哪里以及如何保存令牌 JWT ?(最佳实践)

问题描述

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

来自智利的问候,

标签: javascriptsecuritybrowserjwt

解决方案


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

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

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

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


推荐阅读