当我添加 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>
更多信息在这里