本地存储和 cookie 哪个更安全?
Posted
技术标签:
【中文标题】本地存储和 cookie 哪个更安全?【英文标题】:Which one is more safe local storage or cookies? 【发布时间】:2018-11-18 20:00:17 【问题描述】:我正在使用Django REST API
(后端)和React JS
(前端)开发一个项目。我正在使用Json Web token
进行身份验证。但我很困惑,我应该将Json Web token
存储在local storage
还是cookies
中?哪个更安全,为什么?大公司如何处理API
和client side
之间的这种安全性?
【问题讨论】:
【参考方案1】:基本问题是针对什么更安全?
主要威胁是跨站点脚本 (xss)。关于这一点,cookie 绝对更安全,当且仅当它被设置为 httpOnly。
但是,如果身份验证信息在 cookie 中,跨站点请求伪造 (csrf) 就会成为问题,您必须实施 csrf 保护。不是世界末日,但你需要关心它。如果您将身份验证令牌存储在 localstorage 中并将其作为标头发送,则 csrf 不是问题。
此外,过期的 cookie(持久性 cookie)通常会保存到客户端上的纯文本文件中,这可能是也可能不是您的威胁模型中的有效威胁。
简而言之,这取决于。总体而言,将令牌存储在 httpOnly 安全 cookie 中通常被认为是最安全的,但它具有如上所述的含义。在大多数情况下,将令牌存储在本地存储中也是可以接受的。更是如此,因为如果您需要将令牌发送到多个后端(在不同的来源上),您不能将它放在 cookie 中,因为它只会发送到它自己的来源。
一如既往,魔鬼在(实施)细节中。
【讨论】:
以上是关于本地存储和 cookie 哪个更安全?的主要内容,如果未能解决你的问题,请参考以下文章
将 jwt 保存在 cookie 中以将其传递到本地存储是不是安全?
[html5]localStorage的原理和HTML5本地存储安全性
JS,Cookie本地存储,设置获取cookie函数的封装!