我正在开发一个使用Django REST API
(后端)和React JS
(前端)的项目。我正在使用Json Web token
进行身份验证。但在这一点上,我感到困惑,我应该将Json Web token
存储在local storage
中还是cookies
中?哪一个更安全?为什么?大公司如何处理API
和client side
之间的这种安全性
发布于 2018-06-09 03:08:28
最基本的问题是什么更安全?
主要威胁是跨站点脚本(xss)。考虑到这一点,cookie肯定更安全,当且仅当它被设置为httpOnly时。
但是,如果身份验证信息在cookie中,跨站点请求伪造( csrf )就会成为一个问题,您必须实现csrf保护。不是世界末日,但你需要关心它。如果您将身份验证令牌存储在本地存储中,并将其作为头部发送,则csrf不是问题。
此外,具有过期的cookies (持久化cookies)通常保存到客户端上的明文文件中,这在您的威胁模型中可能是有效的威胁,也可能不是。
因此,简而言之,这取决于。总体而言,通常认为将令牌存储在httpOnly安全cookie中是最安全的,但它具有如上所述的含义。在大多数情况下,将令牌存储在本地存储中也是可以接受的。更重要的是,如果您需要将令牌发送到多个后端(在不同的源上),您不能将其放在cookie中,因为它只会发送到它自己的源。
一如既往,关键在于(实现)细节。
https://stackoverflow.com/questions/50766041
复制相似问题