2012-03-30 2 views
2

le djangobook a cette sectionOrdre du MIDDLEWARE_CLASSES dans django

Pour activer cette protection CSRF, ajoutez 'django.contrib.csrf.middleware.CsrfMiddleware' aux MIDDLEWARE_CLASSES paramètre dans votre fichier de paramètres. Ce middleware doit traiter la réponse après SessionMiddleware, donc CsrfMiddleware doit apparaître avant SessionMiddleware dans la liste (parce que le middleware de réponse est traité en avant-dernier).

cependant djangoproject page dit différent

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

Il est un peu confus..Le CsrfViewMiddleware traite-t-il la réponse après SessionMiddleware maintenant? Est-ce que quelqu'un peut clarifier?

Répondre

0

De la documentation Django:

Ajouter le middleware 'django.middleware.csrf.CsrfViewMiddleware' à votre liste des classes de middleware, MIDDLEWARE_CLASSES. (Il devrait venir avant tout middleware de vue qui supposent que les attaques CSRF ont été traitées avec.)

Source: https://docs.djangoproject.com/en/1.4/ref/contrib/csrf/#how-csrf-works

Voici ma liste Middleware dans un projet Django fraîchement généré (1.3.1): Donc, oui, Django traite le middleware CSRF après le middleware de session maintenant.

Le livre de Django est très périmé - je ne l'utiliserais pas comme une ressource pour apprendre Django ces jours-ci. D'autre part, le tutoriel Django est une ressource formidable.

Questions connexes