Scripts PHP

◄ retour à la liste
Antispam : faux formulaire
Démo Télécharger (6 Ko)
Le principe
L'idée est d'amener le robot spammeur à se focaliser sur un formulaire de contact invisible pour l'utilisateur, tout en expliquant au visiteur comment accéder à la vraie page de contact, laquelle sera protégée par .htaccess pour plus de sécurité.
Fonctionnement
L'utilisateur est dirigé vers la page contact.html que voici :
Bonjour

Afin de limiter le spam, nous avons protégé l'accès à notre formulaire de contact.

Vous êtes ici sur la page contact.html. Dans la barre d'adresse de votre navigateur, remplacez contact.html par contact51, puis validez. Il vous sera alors demandé de saisir un nom d'utilisateur et un mot de passe, que voici :


Vous accèderez ainsi au véritable formulaire de contact.
Merci de votre compréhension.
Ceci est un captcha d'exemple assez facile à lire, qui devra bien sûr être modifié de temps en temps.
Ce changement d'url, assez facile à réaliser (je pense) pour la plupart des internautes, va l'amèner sur le dossier contact51.
Par exemple, s'il était au départ sur http://monsite.fr/contact.html, il ira sur http://monsite.fr/contact51, ce qui est une adresse de dossier et non de page.
Il faut proposer au visiteur de remplacer contact.html par n'importe quel autre mot ou expression, du moment que ce soit simple, que ça redirige sur un dossier, et que ce n'est pas un nom de dossier courant que les robots pourraient être tentés d'essayer (par exemple : admin, images, img...).
A quoi sert le .htaccess ?
Ce dossier contact51 est protégé par un mot de passe .htaccess qui va lui demander les identifiants indiqués au-dessus : il devrait pouvoir accéder sans problème au contenu, à savoir le vrai formulaire de contact, lequel n'a normalement plus besoin de protection anti-robot.

Le mot de passe géré par .htaccess permet de s'assurer qu'aucun robot ne parviendra jusqu'au formulaire : en supposant qu'un robot essaye au hasard des URL de noms de dossier et demande le dossier contact51, il sera bloqué par le mot de passe.
et les robots dans tout ça ?
Maintenant, occupons-nous des robots spammeurs, forcément attirés par cette page "contact.html" qui laisse entrevoir des perspectives alléchantes de spam ! On leur promet un formulaire de contact, il faut leur en donner un, pour qu'ils n'aient pas l'impression qu'il manque quelque chose et aillent chercher ailleurs.

Ce que ne voit pas notre internaute, car toute la partie en question est absolument invisible et donc inaccessible pour lui via une propriété CSS, c'est que la page contact.html propose également un formulaire de contact en bonne et dûe forme :
Formulaire de contact

Nom :
Email :
Objet :
Message :


Voici le code source de ce formulaire :
<form method='post' id='form1' action='contact.php'><b>Formulaire de contact</b><br><br>Nom : <input type='text' name='name' value=''><br>Email : <input type='text' name='email' value=''><br>Objet : <input type='text' name='object' value=''><br>Message :<br><textarea name='message' value='' cols='50'></textarea><br><br><input type='submit' value='Envoyer'></form>
Dans le CSS de la page, le formulaire est ainsi défini afin de le rendre invisible pour l'internaute (mais pas pour le robot qui va parcourir le code source et trouver le formulaire) :
#form1 {display:none}
Les noms de champs sont volontairement très explicites, afin de laisser croire aux robots, qui justement cherchent ce genre de pages, que le formulaire proposé sert à envoyer un message : nom, email, objet et message... tout est là !

Le formulaire en question renvoit sur la page contact.php : c'est spécifié via le champ action de la balise <form>. Notre robot a tout ce qu'il voulait : il va envoyer son message sur la page contact.php, laquelle va lui retourner un beau message de confirmation :
Votre message a bien été envoyé, merci de votre visite !
Le traitement effectué par la page contact.php est le suivant :
<?php echo "Votre message a bien été envoyé, merci de votre visite !"; ?>
La page ne gère rien d'autre que l'affichage de ce message, et rien de plus. Les données envoyées ? Oubliées, disparues, effacées... il n'y a aucun besoin de les traiter de quelque façon que ce soit !
logofree