28 Aout 2008
Captcha PHP basique via une simple addition
Compatibilité : PHP 5, PHP 7
Captcha simple qui utilise les sessions à intégrer dans ces formulaires.
Captcha similaire a Captcha basique via une simple addition, mais en y ajoutant un contrôle en JS. Utilise le code md5.js téléchargeable à l'adresse : http://pajhome.org.uk/crypt/md5/md5.js
|
php.net | Description | Versions PHP | OUTIL |
---|---|---|---|
echo | Affiche une chaîne de caractères | PHP 4, PHP 5, PHP 7, PHP 8 | |
md5 | Calcule le md5 d'une chaîne - (PHP 4, PHP 5, PHP 7, PECL hash:1.1-1.3) | PHP 4, PHP 5, PHP 7, PHP 8 | |
rand | Génère une valeur aléatoire | PHP 4, PHP 5, PHP 7, PHP 8 | |
session_start | Initialise une session | PHP 4, PHP 5, PHP 7, PHP 8 | |
Captcha simple qui utilise les sessions à intégrer dans ces formulaires.
Il existe beaucoup de script de captcha sur le Net, des simples et des plus compliqués. Celle ci est simple à mettre en place.
Explication du code : Permet l'ajout de mois par rapport à une date donnée. Code compatible php7
Générateur automatique d'images pour Captcha. Le texte de la captcha est stocké dans une variable de session inaccessible côté client.
Permet de prendre automatiquement la couleur de fond d'une image pour lui affecter la transparence, et pouvoir afficher l'image sur des fonds de couleurs différentes.
X660
20 Oct 2008 à 11:59Je ne vois pas le rapport avec la variable de session. Cette protection n'est pas efficace. Le robot va récupérer les deux nombres, les additionner puis les envoyer au serveur. Il ne va même pas exécuter cette "pseudo" sécurité en md5 qui ne sert à rien car strictement coté client.
Coté serveur, la valeur que le robot aura posté (c'est à dire celle de cette simple addition) sera dans $_POST['captcha'], comparée à $_SESSION['resultat'], le test sera valide car les robots savent gérer les cookies (c'est la base quand même).
Ce code source montre simplement la "base" des captcha non graphique. Ceci dit, il faudra que le robot soit spécialement configuré pour spammer votre site et identifier l'addition dans le formulaire, donc si le site n'a pas de grand intérêt pour les spammeurs, cette protection suffira.
Koogar
04 Sept 2008 à 11:25@superpigeon:
le robot peut faire l'addition mais pas le test sur la variable de session
Amery
04 Sept 2008 à 11:07Je n'ai pas mis le code du fichier md5.js, parce qu'il n'est pas de moi. Mais il est disponible librement sur le site : ici
J'utlise ce bout de code sur mon site et je n'ai jamais de spam dans mes formulaires (peut-être que mon site n'est pas très visité non plus...). Il est tout à fait possible de l'adapter avec un captcha sous forme d'image. Le principe est exactement le même. Je vais essayer de le faire...
Superpigeon
04 Sept 2008 à 08:51Bon mon comentaire est parti un peu vite,mais j'aurais voulu ajouter :
Ce serait pas mal d'avoir le code du ficher "md5.js" également !
Superpigeon
04 Sept 2008 à 08:50Ouais, c'est vrai bonne idée de mettre en md5 la solution.
Par contre, ça aurait été beaucoup plus efficace avec un captcha graphique, parce que là, je pense qu'un robot est capable de faire une addition (enfin, peut-être que je me trompe).
Rgz
28 Aout 2008 à 16:40Pas mal, bonne idée