Moyen d'éviter le SPAM de robots sur un formulaire de contact ?

sur un forum phpbb j’ai installé un mod qui demande a ceux qui veulent s’inscrire de cocher des photos de chats et ne pas cocher les photos de voiture! Les robots ne passent plus du tout!
Tu devrais pouvoir adapter ça à ton formulaire!
Bon je t’accorde que ça fera peut-être pas pro :paf:

Oui, ça fait moyen pour un site d’entreprise…

Le mieux c’est de générer des formulaires aléatoires, aux noms indéfinissables, au moins pour la clef que tu rentre. Le robot n’est pas con : il saura lire la clef, mais là où il foirera c’est où l’envoyer (ie: dans quel champ). Et tu peux facilement faire ce qu’il faut pour contrer ça.

Aussi, évite les noms de champ commun (genre email, essaye tartempion au lieu d’email, ou un truc aléatoire, tu verras que ça fonctionnera mieux car le robot ne sera pas capable de savoir quoi envoyer.

Plus facile à dire qu’à faire. Et puis je ne suis pas sûr que les robots tiennent compte du nom des champs.
En tous cas, je reçois toujours des spams.

Et bien détrompe toi. A ton avis, comment un robot doit savoir s’il met l’e-mail ou le nom dans le champ parcouru ? Ne crois pas qu’il lit le HTML qu’il y a autour hein :slight_smile:

Et est-ce qu’il y aurait donc un moyen pour que, s’il y a du langage HTML dans un champ, le mail ne s’envoit pas ?

ça ne changera rien, le problème n’est pas là :neutre:
Le robot qui remplit ton formulaire n’est pas forcé de mettre du HTML dedans…
Et puis tu ne peux pas bloquer un langage, le html c’est du texte banal qui est mis en forme par des balises (en gros). Tu peux à la limite bloquer si ça contient certaines combinaisons comme <a href=" et mais bon. Je pense que ce n’est pas là que tu devrais te tourner.

Ce qui me tue, c’est que ce foutu robot ne remplit pas le champ hidden…

on pourrait avoir le code quasi complet pour voir ?

Zut, plus possible, je l’ai effacé sur les pages, car ça ne marchait pas. Les robots ont dû repérer ce genre de ruse maintenant;

Avec un peu de javascript?

  • tu peux passer les champs en hidden en javascript: le robot ne doit pas interpréter le javascript.
  • en javascript, tu peux même remplir un champs hidden avec un code généré: tu détecte sa présence en PHP.

autre idée: en PHP tu peux tester le “referer” normalement ça doit être ton site, p-e que le robot n’a pas prévu ça. Tu peux aussi tracer les ip: ton robot doit toujours utiliser la même (soit tu bloque ip par ip en traçant, soit tu empêche la saisie de plus d’un contact pour 1 ip: tu te limite à un spam par jour)

  • plus sioux: tu mémorise le formulaire en session et tu demande une confirmation (en réaffichant le formulaire):
    . si le robot ne gère pas les sessions il est eu
    . s’il les gère: tu peux encore tester le délai avec lequel le 2ème formulaire est soumis: un utilisateur mettra + d’un demi-seconde.

PS: Il faut peut-être envisager que le bot est développé spécialement pour ton site et que le grand méchant l’adapte en fonction: donc la solution ou il y a un élément qui change régulièrement et automatiquement: les noms de champs ou un contenu de champs caché, rendra le bot d’autant plus difficile à coder.
Edité le 10/09/2007 à 11:17

Message supprimé (Mauvais Topic)
Edité le 10/09/2007 à 21:05