bloquer un spambot sans Captcha

Eléphanteau du PHP | 24 Messages

17 juin 2019, 03:18

Bonjour,

J'ai mis un site web en ligne il y a seulement quelques jours, avec un formulaire de contact,

et je reçois depuis quotidiennement des spams automatiques.

Je déteste les captchas et je ne souhaite pas imposer ça à mes visiteurs.

Je pense que le robot lit le code source pour trouver mon formulaire.

J'ai donc pensé à obfusquer en Javascript le formulaire HTML. Pour qu'il ne voit même plus la page d'envoi ni le bouton Submit.

Je pourrais mettre une checkbox à cocher ou demander combien font 2+3, mais ça embête le visiteur aussi.

Connaissez-vous une meilleure solution que l'obfuscation JS ?

Mammouth du PHP | 685 Messages

17 juin 2019, 08:06

mettre un champ text avec name="email", cacher ce champ en css aux vrais visiteurs, ne pas sauver le formulaire si ce champ est rempli.

Avatar du membre
Mammouth du PHP | 1258 Messages

17 juin 2019, 12:21

Pas con du tout cette méthode tof73, je la garde de côté. ^^

PS : si le champ email fait parti des champs déjà présents dans le formulaire, inventes en un autre. Après pas sûr que ça fonctionne à 100%, si le bot est disons déjà configuré pour soumettre le formulaire sur ce site sans transmettre le nouveau champ et qu'il ne contrôle pas à chaque fois les champs à envoyer, il continuera son spam.

Curieux de savoir si la méthode aura solutionné ton problème David.
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^

Eléphanteau du PHP | 24 Messages

17 juin 2019, 19:16

@tof73: Merci pour cette idée, un genre de honeypot en quelque sorte. Ça va me permettre de traquer le spambot.
Je te tiens au courant des résultats.

@Saian: Merci également pour tes suggestions, bonne idée. Je vais changer le nom des champs, de la page "sendmail.php" et obfusquer en JS, afin qu'il ne puisse pas trouver comment j'ai renommé la page. Je pense qu'il a enregistré le nom de mon site et la page à spammer et de mes champs dans sa base de donnée, donc il aura tout faux. (à tester)

Je suis curieux de voir comment le SpamBot va pouvoir me spammer à nouveau.
Je vous tiens au courant et mettrai ma solution sur ce forum si elle fonctionne.

Avatar du membre
Mammouth du PHP | 1258 Messages

18 juin 2019, 00:07

J'ai mis en place l'astuce sur le site d'un client et apparemment ça marche impeccable, en tout cas avec les tentatives de soumission du formulaire de contact de la journée ! Merci :D
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^

Mammouth du PHP | 1437 Messages

18 juin 2019, 00:31

Après pas sûr que ça fonctionne à 100%, si le bot est disons déjà configuré pour soumettre le formulaire sur ce site sans transmettre le nouveau champ et qu'il ne contrôle pas à chaque fois les champs à envoyer, il continuera son spam.
tu ajoutes un nouveau champ hidden. si le formulaire est soumis sans ce nouveau champ, c'est un robot qui soumet l'ancien formulaire, donc pas de traitement du formulaire. un humain aura ce nouveau champ.

Avatar du membre
Mammouth du PHP | 1258 Messages

18 juin 2019, 12:01

Oué c'est une possibilité. En tout cas pour le moment ça fonctionne avec la simple astuce proposée par tof, pas de nouveau spam reçu. Il semblerait qu'il n'y a pas de bot qui mémorise le formulaire mais qu'ils relisent systématiquement le formulaire de la page avant de procéder à l'envoi.
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^

Mammouth du PHP | 573 Messages

07 juil. 2020, 15:32

+1 pour la soluce de tof73! simple et efficace!

J'ai mis en place un système rapidement car j'avais pas envie de créer un captcha, je demande simplement à l'utilisateur de cliquer sur le deuxième bouton pour envoyer le formulaire (les robots vont cliquer sur le premier bouton submit en générale, ou le dernier, j'ai donc trois boutons "Envoyer le message" et l'utilisateur doit cliquer sur le deuxième, voir l'exemple: https://www.dosages.fr/contact.php)

Avatar du membre
Mammouth du PHP | 1258 Messages

04 août 2020, 13:32

Petite update, ça a marché un temps mais je suis tombé sur des bots qui contournent ça sans problème et même avec un jeton csrf en plus.
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^

Mammouth du PHP | 866 Messages

08 août 2020, 00:14

Pour ma part, je demande aux humains de répondre à des questions simples et choisies aléatoirement.
Par exemple: " De quel oiseau mangeons-nous le plus souvent les oeufs ? " - Poule
ou encore "Écrire le chiffre 4 en lettres
J'utilise ainsi une banque d'une dizaines de paires (question/réponse) et ça suffit.
Si la réponse est vide ou fausse: aucun traitement du formulaire.

Avant qu'un robot sache lire et comprendre qu'il s'agit là d'un anti-spam, je crois qu'il y aura beaucoup de travail de fait en IA.
C'est tout con et ça fonctionne bien.
Soyez artisans de paix