Sécurisez vos formulaires avec Django Captcha

Ce tutoriel se décompose ainsi :

  1. Création de l’environnement virtuel pour le projet
  2. Création et configuration du projet
  3. Création d’un challenge captcha personnalisé
  4. Création des routes
  5. Définition du formulaire
  6. Création de la vue et du template

Création de l’environnement virtuel pour le projet

Tout d’abord, commençons par installer pip et virtualenv.

On crée l’environnement virtuel.

Puis, on s’y connecte.

On installe les paquets requis.

Création du projet

On crée la structure du projet.

On configure Django dans settings.py.

Ajoutons les apps captcha et project dans INSTALLED_APPS ainsi que ‘DIRS’: [‘templates’] dans TEMPLATES.

Configuration du projet

Passons maintenant à la configuration

CAPTCHA_CHALLENGE_FUNCT vous permet de modifier le défi pour valider le captcha.

3 défis sont proposés initialement dans la documentation:

L’utilisateur doit saisir la suite de caractères affichée aléatoirement

L’utilisateur doit saisir le résultat de l’opération mathématique affiché

L’utilisateur doit recopier le mot affiché => ‘captcha.helpers.word_challenge’

Il est également possible de créer son propre challenge !! 🙂

Vous pouvez spécifier n’importe quelle fonction dans CAPTCHA_CHALLENGE_FUNCT à condition quelle retourne un tuple de chaine de caractères.

Pour l’exemple, créons un fichier helpers.py dans project et ajoutons le code suivant :

Cette méthode retourne un tuple (‘: – )’,’: – )’) aléatoire composé du captcha et de la réponse.
Le captcha sera validé si la réponse est égale au texte affiché.

CAPTCHA_NOISE_FUNCTIONS nous permet d’ajouter du grain à l’image pour rendre plus difficile la lecture de 2 manières :

  1. en traçant des arcs de cercle au hasard dans l’image => ‘captcha.helpers.noise_arcs’
  2. en ajoutant des points aléatoirement sur l’image => ‘captcha.helpers.noise_dots’

Nous pouvons facilement retirer un effet en remplaçant l’élément du tuple avec ‘captcha.helpers.noise_null’

Les autres paramètres de configuration :

 

Création des routes

On crée une route vers l’application project dans django_captcha_test/urls.py

On crée un fichier urls.py dans project puis on ajoute le contenu suivant

Définition du formulaire

On crée le fichier forms.py dans project et un formulaire contenant le champs captcha à l’intérieur

Création de la vue et du template

On définit la vue index pour tester

On teste le projet accessible à http://localhost:8000/

Si la réponse saisie est valide, vous pouvez voir « Form Valid !! » s’affichait en console.

Félicitations, le tutoriel est terminé.
Vous savez à présent définir un captcha pour sécuriser vos formulaires.

La sources utilisée : django-captcha doc

Laisser un commentaire