Aller au menu - Aller au contenu

Icône Les captchas anti-bot

Avatar
Par Avatar nax
Mise à jour : 14/11/2010
Difficulté : Difficile Difficile Creative Commons BY-SA
402 visites depuis 7 jours, classé 268/786
Votre site est envahi par des inscriptions de bots (des robots qui s'inscrivent plusieurs fois à des sites dans le but de publier des messages publicitaires sur un livre d'or ou un forum, ou pour utiliser des comptes mail) ?
Il existe de nombreuses solutions pour empêcher ces bots d'agir. Dans ce tutoriel, vous apprendrez à en coder quelques-unes en PHP.

En plus de vous apprendre à créer des captchas, ce cours va vous apprendre - je l'espère - à utiliser des outils méconnus de PHP et des notions informatiques un peu plus complexes. ;) Dans le premier chapitre, vous apprendrez à réaliser un captcha textuel sous la forme d'une question, puis vous découvrirez comment manipuler le hasard avec PHP et générer des chaînes de caractères aléatoires.
Dans le deuxième chapitre, nous nous concentrerons sur la bibliothèque GD et sur quelques fonctions intéressantes : utiliser une police true type, créer des effets tels que des rotations et des flous avec des matrices de convolution, etc.
Enfin, dans le troisième chapitre, nous aborderons la manipulation de données binaires : d'abord la théorie, puis la pratique avec PHP.

Image utilisateur
Ce cours est composé des parties suivantes :
J'espère que ce cours vous aura appris bien plus que la création de captchas : c'est en effet un type d'application qui permet d'utiliser des notions de programmation originales et intéressantes.

Si vous avez apprécié ce tutoriel, merci de laisser un petit message en commentaire. Si vous avez des difficultés, n'hésitez pas à me contacter par MP et / ou à demander de l'aide sur le forum.

Merci.

Partager

27 commentaires pour "Les captchas anti-bot"
Note moyenne : 3.74 / 4 (38 votes)
Pseudo Commentaire
Hors ligne fab@c++ # Posté le 18/08/2010 à 20:15:55
Impossible n'est pas français
Avatar

Avis : Très bon

Super cours, voilà qui va me permettre de terminer mon script d'inscription !!!!! :p :p
 
Connecté Vrugar # Posté le 14/11/2010 à 16:15:02
Avatar

Avis : Très bon

Ville : Auberchicourt
Pays : France métropolitaine
Études : Université de Valenciennes et du Hainaut Cambrésis

Très bon tutoriel, félicitation. Ca me permet de mieux comprendre le fonctionnement et de créer mon propre captcha au lieu d'en piquer sur le net.
Hors ligne Pandore # Posté le 14/11/2010 à 18:08:08
Ange Gardien
Avatar

Très bon tuto. :)

Juste une remarque tout de même :

Citation : tutoriel
L'intérêt de réaliser un fichier .wav est de permettre l'accès à votre site aux personnes malvoyantes lorsque votre captcha est une image.

Pas seulement. Je ne porte pas de lunettes et j'ai 10 dixièmes à chaque oeil et pourtant j'ai déjà du utiliser plusieurs fois le capcha sonore au lieu du capcha image au cours de mes surfs tellement les images étaient déformées et complètement illisibles. A mon sens, le capcha image est la pire solution en terme d'accessibilité numérique et est donc à éviter autant que possible.

"Plus les choses changent, plus elles restent les mêmes ..."

Mes sites web à mouuuuaaaahhh !!! :D : 1) dogue allemand de la Boite de Pandore 2) great-danes-of-the-world, le portail mondial du dogue allemand 3) mon classeur de cartes Magic the Gathering
Un jeu de cartes par navigateur gratuit intéressant : Eredan ITCG
 
Connecté maxima # Posté le 05/01/2011 à 09:53:55
C’est pas faux.
Avatar

Études : Lycée du Parc - Lyon

Le système de vérification dans "Les captchas textuels" est vraiment à revoir :
- pas de vérification de l'existence de $_SESSION['captcha'] ;
- et surtout, pas de :

Code : PHP
1
2
3
4
5
6
<?php
if($_POST['captcha'] == $_SESSION['captcha'])
{
    unset($_SESSION['captcha']);
    // Le reste ..
?>


Qui est essentiel pour éviter qu'une personne valide lui même le formulaire (en le remplissant normalement), puis lance son robot spammeur qui envoie directement les données $_POST sur la page de validation, sans charger le formulaire et donc l'image qui change $_SESSION['captcha'] !
Je sais pas si on m'a compris, sinon n'hésitez pas à me redemander.

Sinon, bon tuto.
Hors ligne J_Raf # Posté le 30/10/2011 à 15:06:01
Avatar

Bonjour,

Merci beaucoup pour ton tuto qui m'a permis de sonoriser mes captchas. J'ai voulu améliorer en voulant créer un bouton "écouter" qui fait jouer le son directement dans le navigateur et non avec une application tierce comme dans ton exemple.

Pour cela j'ai fait un bouton javascript qui ajoute sur la page une balise OBJECT de ce type :

Code : HTML
1
2
3
4
5
6
<object type='audio/x-wav' data='wav.php' width='0' height='0'>
<param name='src' value='wav.php'>
<param name='autoplay' value='false'>
<param name='autoStart' value='0'>
alt : <a href='wav.php'>wav.php</a>
</object>


Ca fonctionne, mais le code n'est vraiment pas beau :lol: :

Code : HTML
1
2
<input type="button" value="écouter" OnClick="javascript:document.getElementById('sonNavigateur').innerHTML = '<object type=\'audio/x-wav\' data=\'wav.php\' width=\'\' height=\'\'><param name=\'src\' value=\'wav.php\'><param name=\'autoplay\' value=\'false\'><param name=\'autoStart\' value=\'0\'> alt : <a href=\'wav.php\'>wav.php</a></object>';">
<div id="sonNavigateur"><br></div>


Ma question : est ce qu'on peut obtenir le même résultat avec rien que du php ? Ou tout simplement améliorer ce code ?

Encore merci,
Jean-Raphaël

Voir tous les commentaires
Ce tutoriel a été corrigé par les zCorrecteurs.