Anti-Spam PHP

Cette fois-ci : on éradique avec un piège très efficace ...

Les captchas, outre le nom ridicule dont ils sont affublés, ne sont pas du tout infaillibles. En fait, et ce ne sont pas mes petits camarades aux chapeaux sombres qui me contrediront : ils ne servent pas à grand chose. Parce que les scripts et robots spammeurs ne passent pas par la porte d'entrée que représente votre joli formulaire : ils vont directement envoyer leurs textes drolatiques dans le traitement même avant envoi vers la base de données. C'est d'autant plus simple que la majorité écrasante des blogs est désormais motorisée par Wordpress. Et bien entendu tout ce joli monde ne songe pas à modifier le nom des variables et des champs coté HTML ou mieux coté MySQL. Bref : c'est la passoire.

On peut donc traiter le spam à posteriori, avec des tas de solutions comme les filtres bayésiens et consorts. Ou alors on essaye d'éradiquer les intrus à la source, avant même que le spam ne vienne remplir la base de données. La solution que voilà me semble vraiment ultime. Il s'agit simplement de modifier le code HTML du formulaire comme ceci :

Ensuite en PHP on ajoutera une petite condition if dans la partie du script qui traite les données du formulaire :

Si personne n'a cliqué sur le bouton, la valeur de la variable envoyée via POST sera inchangée : "robotspam" ! Si en revanche c'est bien la tante Olga qui a cliqué sur le bouton pour vous dire tout le bien qu'elle pense de votre blog sur les chatons roux, alors le gentil Javascript activé dans son butineur préféré changera la valeur de quivala en "humain" ! Une solution qui ne supprimera donc pas les spams manuels réalisés par les artisans pollueurs mais qui va réduire drastiquement les automates enragés des vendeurs de pilules. Oui, je sais : je n'ai pas encore installé cet ingénieux système sur le blog. C'est pour bientôt et ce sera parfaitement indolore ! :)

Notre illustration : un blogueur amateur tente d'amadouer un spammeur déguisé en chat noir.


Sommaire