安全性 - 本地存储与 Cookie

Posted

技术标签:

【中文标题】安全性 - 本地存储与 Cookie【英文标题】:Security - Local storage vs Cookies 【发布时间】:2020-01-10 23:46:45 【问题描述】:

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

他们要求使用将其存储在 cookie 中。因为它不安全。但对我来说 cookie 也可以在 js 中访问,所以我看不到这里的重点。

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

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

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

【问题讨论】:

How do I store JWT and send them with every request using react的可能重复 看看这个答案的第三条评论(不要按照答案所说的去做)https://***.com/a/39177841/3763848 【参考方案1】:

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

参考MDN - Secure and HttpOnly cookies:

为了帮助缓解跨站点脚本 (XSS) 攻击,HttpOnly cookie JavaScript 的 Document.cookie API 无法访问;他们只是 发送到服务器。例如,保存在服务器端的 cookie 会话不需要对 JavaScript 可用,并且 HttpOnly 应该设置标志。

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

【讨论】:

以上是关于安全性 - 本地存储与 Cookie的主要内容,如果未能解决你的问题,请参考以下文章

将 jwt 保存在 cookie 中以将其传递到本地存储是不是安全?

JS,Cookie本地存储,设置获取cookie函数的封装!

JS,Cookie本地存储,设置获取cookie函数的封装!

[html5]localStorage的原理和HTML5本地存储安全性

为啥大型网站不喜欢本地存储而不是 cookie? [复制]

关于cookie与本地 存储的区别的问题。