【问题标题】:Handling CSRF token when working with Django Rest Framework JWT使用 Django Rest Framework JWT 时处理 CSRF 令牌
【发布时间】:2019-02-26 11:33:33
【问题描述】:

对 API 的每个请求都需要 JWT 令牌,我应该保持 CSRF 保护吗?当然,考虑到没有人可以访问其他人的 jwtoken。

如果是,由于我不使用 django 模板(我单独使用 Vue),我如何获得 csrf 令牌。

如果没有,是否可以从设置中彻底删除CSRF中间件?

提前致谢。

【问题讨论】:

    标签: vue.js vuejs2 django-csrf django-rest-framework-jwt


    【解决方案1】:

    如果您将 JWT 存储在 localStorage 中,则不会受到 CSRF 的攻击,因为 localStorage 无法跨域访问。但是,您应该知道,将 JWT 保存在 localStorage 中是否明智存在争议,因为如果您成为 XSS 的受害者,它可能会被盗。另一种方法是将令牌存储在 httpOnly cookie 中,在这种情况下,您必须使用 CSRF 保护。

    【讨论】:

      【解决方案2】:

      如果您使用 Django,csrf_token 将在您的站点 cookie 中。 您可以从 cookie 访问它并将其与请求一起传递。

      【讨论】:

      • 我根本没有使用 django 模板,我没有来自 django 中间件的 cookie 或会话。身份验证只是从(默认:api-token-auth)获取 jwt 令牌并将其存储到 localStorage 中以供进一步请求,仅此而已,不涉及 cookie。但是现在当我使用 django-rest-framework 视图发布数据时,它需要我的 csrf 令牌(jwt 令牌还不够吗?)
      猜你喜欢
      • 2020-09-12
      • 2019-08-01
      • 2017-06-25
      • 1970-01-01
      • 2017-03-30
      • 2019-06-20
      • 2015-02-11
      • 2018-02-24
      • 2020-06-18
      相关资源
      最近更新 更多