Lutte contre le spam de formulaire
Rédigé par adm - 06 septembre 2013
De plus en plus je suis spammé sur des sites ayant un formulaire et même les captcha ne sont plus d'aucun secours.
Après pas mal d'essai je vous présente une methode très simple de luttre contre les robots spammeur.
La méthode TimeSite ( lol je viens d'inventer ce mot ). ( fonctionnant sous PHP)
Bon parlons bref, parlons bien,
J'étais soumis à un spam continue d'un champ de recherche d'un moteur de recherche interne, ce qui va nous donner un bon exemple car c'est le formulaire le plus simple au monde : 1 seul champ de recherche.
Etape 1 : on ajoute une nouvelle ligne au formulaire
la ligne
<input type="hidden" name="secondes" value="<?php echo time();?>">
Ce qui nous donne une forlmulaired e ce type :
<form action="search.php" method="post"> <input type="hidden" name="secondes" value="<?php echo time();?>"> <input type="text" name="mots" size=25 maxlength=100 > <input type="submit" value="Rechercher"> </form>
Etape 2 : on va ajouter un peu de code php dans votre page de traitement de votre formulaire : dans le cas ici search.php
on va ajouter le code suivant
//****************************** ANTISPAM TIMESITE **************************** //par www.tonsite.info (GE) //1° //On récupère le temps actuel en seconde // On le soustrait au temps envoyé par le formulaire // vous vous souvenez le ligne qu'on a ajouté au formulaire // pour soustraire avec celui de l’arrivée du visiteur sur la page // <input type="hidden" name="secondes" ...... $tempsactuel= time(); $est_ce_le_robot = $tempsactuel - $_REQUEST['secondes']; //2° //On vérifie si le formulaire est rempli en moins de 5 secondes // seule une machine sait faire cela if ($est_ce_le_robot < 5 ) { $message .= "<a href=\"javascript:history.go(-1);\">Retour</a>"; $message .= " <br><br>vous allez trop vite et êtes alors considéré comme un robot spammeur"; die($message); } //******************************fin ANTISPAM TIMESITE
Donc l'idée c'est qu'un robots spammeur rempli très vite un formulaire ( ici on dit 5 s)
Alors on ne traite pas le forumulaire si c'est un robot
L'idée peut être bien améliorée, perso, je banni l'IP et j'envoi un mail pour m'avertir
Ce petit script marche à merveille, c'est par 100 que j'ai pu backlister les robots(IP)
GE pour tonsite.info
Classé dans : apacheWeb, - Mots clés : aucun