Meine Website hat eine AJAX POST-Ansicht, die von jeder Seite der App aus aufgerufen werden kann (Ereignisverfolgung). Diese Ansicht ist durch CSRF geschützt. In einigen Fällen ist das CSRF-Cookie nicht gesetzt und der POST-Aufruf schlägt fehl.Django: CSRF-Token für alle Antworten erzwingen
Statt manuell alle Ansichten mit @ensure_csrf_cookie
Dekoration,
Ich denke an Schreib
habe ich eine Middleware, die Django erzwingt auf allen Antworten die CSRF-Cookie zu setzen. Ist dieser Ansatz richtig? Erzeugt es eine Sicherheitslücke, die mir nicht bekannt ist?
Update: hier ist der Middleware-Code:
from django.middleware.csrf import get_token
class ForceCsrfCookieMiddleware(object):
def process_request(self, request):
get_token(request)
Fehler Sicherheit? Ich denke nicht. Weil Sie nur die Funktionalität von 'secure_csrf_cookie' in einer Middleware implementieren. Lesen Sie den Quellcode dieses Dekorators. – xyres