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

Écrire un commentaire

Quelle est la première lettre du mot klfk ? : 

Catégories

Archives

Mots clés

Derniers articles

Derniers commentaires