gpt4 book ai didi

django - django 的零星 403 "CSRF FAILURECSRF cookie not set"错误

转载 作者:行者123 更新时间:2023-12-03 17:19:56 24 4
gpt4 key购买 nike

我们有一个刚刚开始向外界开放的小网站。在大多数情况下,它运行良好,但我们偶尔会收到来自其中一种表单的消息“CSRF FAILURECSRF cookie not set”的 403 错误。表格肯定有{% csrf_token %}包括在内,我们的中间件如下所示:

MIDDLEWARE_CLASSES = (
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)

该表格对大多数人都适用,但我大约每天都会收到一封包含失败案例的电子邮件。电子邮件包含实际请求,如下所示(我已经删除了其余的 POST 数据以隐藏私有(private)数据,但留下了 csrfmiddlewaretoken):
<WSGIRequest
path:/main/10/apply/,
GET:<QueryDict: {}>,
POST:<QueryDict: {u'csrfmiddlewaretoken': [u'IQQZvbVIggJm6Be6VinPHj8Qn3i3TdmG']}>,
COOKIES:{},
META:{'CONTENT_LENGTH': '111978',
'CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundaryLyo9BPXnAwKnt8ew',
'CSRF_COOKIE': 'XmSPWJZk2UwS4PNBXRmVlAaYDDdNaGqk',

CSRF_COOKIE 与 csrfmiddlewaretoken 不匹配,我假设这是导致问题的原因,但我无法弄清楚这些提交是如何不同步的,而其他提交则不然。该页面是一个非常简单的表单,只有几个字段。

关于我应该在哪里看的任何建议?我通过 apache 使用 mod_wsgi 在 CentOS 上运行最新的 Django 1.4.1。

编辑:与成功的请求相比,唯一看起来很奇怪的是这里的 COOKIES:{}部分是空的,这会让我怀疑他们可能只是在浏览器中禁用了 cookie,但是为什么它会在 META 部分中显示为 CSRF_COOKIE?

谢谢你的帮助!

布兰登

最佳答案

HTTP_COOKIE 也是空白的吗?

可能是 django 在请求中没有看到 CSRF token cookie,它正在生成一个新的 CSRF_COOKIE 并将其放入 meta 中。

关于django - django 的零星 403 "CSRF FAILURECSRF cookie not set"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11820307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com