Magazine Internet

Django : Personnaliser la page d'erreur CSRF

Publié le 25 mars 2011 par Samuel Martin

Pour se défendre des attaques CSRF, Django contient les outils indispensables. Cet article donne la recette pour gérer soi-même le rendu de la page d'erreur liée à ce type d'attaque.

Voici la courte méthode permettant de gérer la page d'erreur CSRF soi-même. Cette méthode vous permet d'afficher la page d'erreur avec votre propre design / template.

Dans le fichier settings.py ajouter :

CSRF_FAILURE_VIEW = "<votre_projet>.csrf.csrf_failure"

Créer à la racine le fichier csrf.py contenant le code suivant :

# -*- coding: utf-8 -*-
from django.views.generic.simple import direct_to_template
def csrf_failure(request, reason=""):
    """
    Default view used when request fails CSRF protection
    """
    response =  direct_to_template(request, 'csrf.html')
    response.status_code = 403
    return response

Enfin n'oubliez pas de créer le template csrf.html dans le dossier templates/

csrf_403.png

PS: On prend soin de renvoyer le code d'erreur HTTP 403, car par défaut c'est le code 200, ce qui peut laisser penser que tout va bien. Voir la liste des codes HTTP disponibles


Retour à La Une de Logo Paperblog

A propos de l’auteur


Samuel Martin 21 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Magazine