Django 在添加 csrf 中间件时导致 403 禁止错误



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

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

在Django 中使用 CSRF 的表单应该看起来像这样:

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

更多信息在这里

最新更新