代码之家  ›  专栏  ›  技术社区  ›  Taohidul Islam

哪一个是更安全的本地存储还是cookies?

  •  5
  • Taohidul Islam  · 技术社区  · 7 年前

    我正在开发一个项目 Django REST API (后端)和 React JS (前端)。我正在使用 Json Web token 用于身份验证。但是我很困惑是否应该储存 JSON Web令牌 在里面 local storage 或者在 cookies ?哪个更安全,为什么?大公司如何处理 API client side ?

    1 回复  |  直到 7 年前
        1
  •  10
  •   Gabor Lengyel    7 年前

    最根本的问题是更安全的防范什么?

    主要威胁是跨站点脚本(xss)。关于这一点,如果且仅当cookie设置为httponly时,cookie绝对更安全。

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

    此外,过期的cookie(持久cookie)通常会保存到客户端的明文文件中,这可能是或可能不是威胁模型中的有效威胁。

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

    和往常一样,魔鬼在(实现)细节中。