零星403“;CSRF故障未设置CSRF cookie“;django的错误

零星403“;CSRF故障未设置CSRF cookie“;django的错误,django,http-status-code-403,django-1.4,django-csrf,Django,Http Status Code 403,Django 1.4,Django Csrf,我们有一个小网站,刚刚开始接触到外部世界。在大多数情况下,它工作得很好,但我们偶尔会从其中一个表单收到403个错误,消息为“CSRF FAILURECSRF cookie not set”。表单中肯定包含了{%csrf\u token%},我们的中间件如下所示: MIDDLEWARE_CLASSES = ( 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.common.CommonMiddleware

我们有一个小网站,刚刚开始接触到外部世界。在大多数情况下,它工作得很好,但我们偶尔会从其中一个表单收到403个错误,消息为“CSRF FAILURECSRF cookie not set”。表单中肯定包含了
{%csrf\u 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数据以隐藏私人数据,但保留了csrfmiddlewaretoken):


HTTP\u COOKIE也是空的吗


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

我遇到了完全相同的问题。你有没有想出一个解决办法?有点。问题是一些用户关闭了cookie,并且没有办法从服务器端修复这一问题。我们最终关闭了面向公众表单的CSRF保护。不要对登录页面或其他敏感数据执行此操作,但CSRF保护并非总是严格必要的。
<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',