Wir haben eine kleine Seite, die gerade beginnt, nach außen ausgesetzt zu sein. In den meisten Fällen funktioniert es sehr gut, aber wir bekommen gelegentlich 403 Fehler mit der Nachricht "CSRF FAILURECSRF Cookie nicht gesetzt" von einem der Formulare. Die Form hat auf jeden Fall die {% csrf_token %}
enthielt, und unsere Middleware wie folgt aussieht:Sporadisch 403 "CSRF FAILURECSRF Cookie nicht gesetzt" Fehler mit Django
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',
)
Die Form für die meisten Menschen gut funktioniert, aber etwa einmal am Tag bekomme ich eine E-Mail mit einem Fehlerfall. Die E-Mail enthält die aktuelle Anforderung, die wie folgt aussieht (ich den Rest der POST-Daten entfernt haben private Daten zu verstecken, aber verließ die 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',
Die CSRF_COOKIE nicht die csrfmiddlewaretoken überein , was ich annehme, verursacht das Problem, aber ich kann nicht herausfinden, wie diese für einige Übermittlungen nicht synchron sind, aber nicht andere. Die Seite ist eine ziemlich einfache Form mit nur wenigen Feldern.
Irgendwelche Vorschläge für, wo ich aussehen sollte? Ich benutze den neuesten Django 1.4.1 auf CentOS mit mod_wsgi über Apache.
Edit: Die einzige andere Sache, die im Vergleich zu den erfolgreichen Anforderungen merkwürdig erscheint, ist, dass hier der COOKIES:{}
Abschnitt leer ist, was mich führen würde, dass vielleicht zu vermuten, sie haben nur deaktiviert Cookies in ihrem Browser, aber warum dann tut Es erscheint mit der CSRF_COOKIE in der META-Sektion?
Danke für Ihre Hilfe!
Brandon
Ich laufe auf genau dasselbe Problem. Haben Sie jemals eine Lösung gefunden? –
Art von. Das Problem war, dass einige Benutzer Cookies deaktiviert hatten und es keine Möglichkeit gibt, das vom Server aus zu beheben. Am Ende haben wir den CSRF-Schutz für die Öffentlichkeitsarbeit abgeschaltet. Tun Sie dies nicht für Anmeldeseiten oder andere sensible Daten, aber CSRF-Schutz ist nicht immer unbedingt erforderlich. – brandon