Moja witryna ma widok POST AJAX, który można wywołać z dowolnej strony w aplikacji (śledzenie zdarzeń). Ten widok jest chroniony przez CSRF. W niektórych przypadkach plik cookie CSRF nie jest ustawiony, a wywołanie POST kończy się niepowodzeniem.Django: Wymuszanie tokenu CSRF we wszystkich odpowiedziach
Zamiast ręcznie dekorować wszystkie widoki za pomocą @ensure_csrf_cookie
,
Zastanawiam się nad pisaniem
Utworzyłem oprogramowanie pośrednie, które wymusza na Django ustawienie pliku cookie CSRF we wszystkich odpowiedziach. Czy to podejście jest prawidłowe? Czy tworzy on lukę bezpieczeństwa, której nie znam?
Aktualizacja: oto kod middleware:
from django.middleware.csrf import get_token
class ForceCsrfCookieMiddleware(object):
def process_request(self, request):
get_token(request)
Bezpieczeństwa wada? Myślę, że nie. Ponieważ właśnie wdrażasz funkcjonalność 'ensure_csrf_cookie' w oprogramowaniu pośredniczącym. Mimo to przeczytaj kod źródłowy tego dekoratora. – xyres