【问题标题】:Django causing 403 forbidden error when i add csrf middleware当我添加 csrf 中间件时,Django 导致 403 禁止错误
【发布时间】:2019-03-02 05:28:35
【问题描述】:

当我添加 CSRF 中间件 django.middleware.csrf.CsrfViewMiddleware 以防止 xss csrf 攻击时,我收到错误响应 403 csrf 错误。

  • 我参考了官方文档和旧的 Stack Overflow 答案,但我仍然不知道为什么会导致错误。
  • 我阅读了 Django 官方文档,如果我添加了 csrf 中间件,默认情况下它会在每个视图中处理所有 csrf 验证。
  • 除此之外,我还使用了一些装饰器来确保安全性,例如 @login_required 和 @csrf_protect
  • 我在 Middleware 类的常用中间件之前添加了django.middleware.csrf.CsrfViewMiddleware 作为第一个条目,是不是因为这个?

【问题讨论】:

  • 这种情况会发生在表单上吗?
  • submission ,我的应用程序包含一个按钮。当我提交按钮时,它发生了。 @ThomasJiang
  • Django CSRF docs 介绍了如何使用它。我们无法帮助您,因为您没有显示完整的错误或触发它的代码(url/view/template)。

标签: python django csrf-protection django-csrf


【解决方案1】:

在 Django 中带有 CSRF 的表单应该如下所示:

<form method="POST" ...>
    {% csrf_token %}
...
</form>

更多信息here

【讨论】:

  • 是因为订单吗? “csrf 中间件”类?我已在 csrf 类(settings.py)中添加为第一个条目
猜你喜欢
  • 2013-05-25
  • 1970-01-01
  • 2018-11-06
  • 2018-01-14
  • 2015-07-30
  • 2016-05-08
  • 2018-02-28
  • 2018-07-23
  • 1970-01-01
相关资源
最近更新 更多