安全性 - 本地存储与 Cookie

Security - Local storage vs Cookies

您好,我有一个使用 JWT 进行身份验证的 React 应用程序。 我们将此 JWT 存储在本地存储中,但我们团队的安全人员告诉我们它不安全,因为可以通过 Javascript 访问此令牌。

他们要求改为将其存储在 cookie 中。因为它不安全。但对我来说,cookie 也可以在 js 中访问,所以我不明白这里的意义。

您知道为什么 cookie 存储应该比本地和会话存储更安全吗?真的是这样吗?

使用 JWT 最安全的方法是什么?

我不是在问我应该如何使用 JWT,而是在问保护它的最佳方法是什么。

localStorage 数据不同,您可以将 cookie 设置为 HttpOnly,这样它就无法通过 javascript 代码访问。

参考MDN - Secure and HttpOnly cookies:

To help mitigate cross-site scripting (XSS) attacks, HttpOnly cookies are inaccessible to JavaScript's Document.cookie API; they are only sent to the server. For example, cookies that persist server-side sessions don't need to be available to JavaScript, and the HttpOnly flag should be set.

Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly