par
Cyrano » 20 févr. 2008, 07:37
Autre option simplissime que j'ai utilisé avec succès. J'ai mis ça en place sur un livre d'or en juillet dernier et depuis, je n'ai plus eu un seul spam dessus.
Dans le formulaire de saisie, j'ai un textarea : jusque là, rien que de tout à fait normal. J'en ai mis un second juste après.
Le premier a pour attribut name (et attribut id) "commentaires" et le second "spam" : via une feuille de style externe, je masque l'affichage du textarea "commentaires" (et non "spam", c'est voulu, explications plus loin) avec un : textarea#commentaires {display: none}
Lors de la validation, je vérifie que le contenu de $_POST['commentaires'] est bien vide : un internaute normal ne voit pas ce champ et ne peut rien y mettre. Le robot spammeur en revanche voit parfaitement bien les deux champs et a un certain nombre de mots clés pour contourner les différentes protections : Il se garde donc bien de mettre du contenu dans la zone "spam".
Pourquoi récupérer "spam" et non "commentaires" ? Parce que beaucoup de robots spamment sans même se rendre sur le site : ils ont enregistré le formulaire et envoie une requête http avec un formulaire local directement vers ta page de validation. En changeant le champ que tu récupères, tu rendras obsolète leur copie de ton formulaire.
À partir de là, les seuls spams ne pourront être postés que par un humain. (tant que les robots n'interprètent pas les CSS). Et attention, certains le peuvent peut-être déjà, donc mets bien ça dans une feuille externe, pas dans la balise elle-même.
Autre option simplissime que j'ai utilisé avec succès. J'ai mis ça en place sur un livre d'or en juillet dernier et depuis, je n'ai plus eu un seul spam dessus.
Dans le formulaire de saisie, j'ai un textarea : jusque là, rien que de tout à fait normal. J'en ai mis un second juste après.
Le premier a pour attribut name (et attribut [u]id[/u]) "commentaires" et le second "spam" : via une feuille de style [u]externe[/u], je masque l'affichage du textarea "commentaires" (et non "spam", c'est voulu, explications plus loin) avec un : [i]textarea#commentaires {display: none[/i]}
Lors de la validation, je vérifie que le contenu de $_POST['commentaires'] est bien vide : un internaute normal ne voit pas ce champ et ne peut rien y mettre. Le robot spammeur en revanche voit parfaitement bien les deux champs et a un certain nombre de mots clés pour contourner les différentes protections : Il se garde donc bien de mettre du contenu dans la zone "spam".
Pourquoi récupérer "spam" et non "commentaires" ? Parce que beaucoup de robots spamment sans même se rendre sur le site : ils ont enregistré le formulaire et envoie une requête http avec un formulaire local directement vers ta page de validation. En changeant le champ que tu récupères, tu rendras obsolète leur copie de ton formulaire.
À partir de là, les seuls spams ne pourront être postés que par un humain. (tant que les robots n'interprètent pas les CSS). Et attention, certains le peuvent peut-être déjà, donc mets bien ça dans une feuille externe, pas dans la balise elle-même.