哪一个更安全的本地存储或cookie?

Tao*_*lam 5 security software-design jwt django-rest-framework reactjs

我正在使用Django REST API(后端)和React JS(前端)开发项目.我Json Web token用于身份验证.但我很困惑,我是否应该存储Json Web tokenlocal storage或在cookies?哪一个更安全,为什么?如何大公司处理这类之间的安全性APIclient side

Gab*_*yel 10

根本问题是针对什么更安全?

主要威胁是跨站点脚本(xss).关于这一点,当且仅当它被设置为httpOnly时,cookie肯定更安全.

但是,如果身份验证信息位于cookie中,则跨站点请求伪造(csrf)成为问题,您必须实施csrf保护.不是世界末日,但你需要关心它.如果将身份验证令牌存储在localstorage中并将其作为标头发送,则csrf不是问题.

此外,具有到期时间的Cookie(持久性Cookie)通常会保存到客户端上的纯文本文件中,这可能是威胁模型中的有效威胁,也可能不是.

简而言之,这取决于.总的来说,将令牌存储在httpOnly安全cookie中通常被认为是最安全的,但它具有如上所述的含义.在大多数情况下,将令牌存储在localstorage中也是可以接受的.更是如此,因为如果你需要将令牌发送到多个后端(在不同的起源上),你就不能将它放在cookie中,因为那只会被发送到它自己的来源.

与往常一样,魔鬼在(实施)细节中.