Détecter les bots avec CleanTalk

Chez WiziShop nous gérons pour le compte de nos commerçants des centaines de milliers de formulaires et malheureusement, quand il y a des formulaires, il y a des bots qui les spamment.

Pour les détecter nous utilisons des techniques classiques (honeypot, CSRF Token, etc.) ainsi que des contrôles que nous avons développés en interne en analysant le user-agent (type de navigateur, version de celui-ci), le nom d’hôte correspondant à l’IP et sa géolocalisation.

Cela a très bien fonctionné, mais, il y a deux mois, les bots sont devenus beaucoup plus fort que nous :

Courbe montrant le nombre de spam par jour

En vert foncé, vous pouvez voir le nombre de mails que l’on a tenté d’envoyer, en vert clair, les mails bien reçu et, en rouge, le nombre de “spam report”.

En clair, les bots sont passés entre les mailles de notre filet… …surtout sur le formulaire d’inscription à la newsletter (allez savoir pourquoi)

Les conséquences étaient très rapidement visibles sur la dérivabilité de nos emails, surtout chez nos amies de Microsoft (hotmail, live, outlook, etc.)

Il nous fallait une solution rapide pour pouvoir trier facilement les bons formulaires des mauvais formulaire (comme pour les bons et les mauvais chasseurs) et après avoir testé des dizaines de services, celui qui a retenu notre attention est CleanTalk

Ne vous fiez pas au design (horrible) du site, car leur API “spam_check” fonctionne terriblement bien et, en plus, elle est compatible RGPD !

De notre côté nous continuons d’utiliser nos filtres de base qui épurent une grande partie des bots et nous avons rajouté pour ceux qui ne se font pas prendre une vérification sur CleanTalk.

Pour cela, il nous suffit d’appeler la méthode API en lui passant l’IP et l’email de celui qui vient de valider le formulaire et pour éviter de divulguer l’IP et l’email de l’utilisateur nous passons ceux-ci avec du hachage SHA-256.

Impression d’écran de postman avec les APIs CleanTalk

Comme vous pouvez le voir dans cet exemple, le retour JSON est extrêmement lisible et donne les valeurs spam_rate et appears autant pour l’IP que pour l’email.

Nous avons décidé que si l’IP ou l’email à la valeur appears à 1 et un spam_rate supérieur à 0,7 alors nous considérons le demandeur comme un bot.

Nous avons rajouté, aussi, au-dessus de cela un système de cache pour ne pas demander une IP ou un email plus d’une fois toutes les 48h, cela permet d’éviter un trop grand nombre d’appels sur l’API de CleanTalk, et donc une trop grosse facturation (celle-ci s’établit sur le nombre d’appels), surtout, que souvent, les bots utilisent soit la même IP, soit la même adresse email pour spammer un grand nombre de formulaires.

Depuis nos statistiques, d’envois d’emails liés à la validation de formulaires, vont beaucoup mieux :

Courbe montrant qu’il n’y a plus de spam

Pour finir, si vous cherchez à éradiquer les bots, je ne peux que vous conseiller CleanTalk et si jamais une personne de chez CleanTalk passe sur ce blog, s’il vous plait, engagez une ou un véritable UX-Designer, vous avez un bon produit, mais une expérience utilisateur catastrophique… 🤷

Des images dans mes emails ?!

Google vient de rajouter une fonctionnalité dans la version web et mobile de Gmail : les images dans les emails !

Maintenant plus besoin de cliquer sur le fameux « Afficher les images ci-dessous » pour voir correctement vos emails, newsletters et spams préférés !!

Cette option avait été mise en place par soucis de confidentialité. Les images des emails ne sont pas (généralement) inclues avec l’email et donc votre navigateur doit les charger directement.

En téléchargeant les images avec votre navigateur, l’expéditeur pouvait connaitre votre adresse ip (donc potentiellement votre géolocalisation) et le navigateur que vous utilisez. Google, comme les autres outils de gestions d’emails, demandait donc votre consentement pour pouvoir les afficher.

Aujourd’hui il change d’avis, mais en annonçant garantir votre sécurité ! Pour cela lorsque vous consultez un email les images sont demandées aux serveurs de Google qui vont les demander aux serveurs de l’expéditeur. Du coup celui ci ne connait ni votre ip, ni le nom de votre navigateur.

Après l’avoir utilisé pendant trois jours j’avoue que ça change la vie de voir directement les emails dans la forme souhaité par son expéditeur !

Oui mais…

J’ai procédé à des tests en m’envoyant des emails avec un image distante pour comprendre comment ça marche. J’ai donc pu voir l’ip de Google me demander l’image avec comme user-agent (nom complexe de navigateur) : Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (via ggpht.com GoogleImageProxy)

Jusque là pas de soucis, mais quelle surprise de voir Google demander l’image sur mon serveur au moment ou je consulte l’email pour la première fois. Voila une information avec énormément de valeur !

Explication : dans les statistiques liés à l’envoi du campagne d’emailing il est très difficile de connaitre le véritable taux d’ouverture. Pour savoir si un email est ouvert nous rajoutons une image unique dans chacun des emails envoyés, lorsque cette image est affichée (donc demandée à mon serveur) cela veux dire que le détenteur de l’adresse email associé a cette image vient de l’ouvrir. Mais auparavant il fallait qu’il clique sur le fameux « Afficher les images ci-dessous » pour le savoir. Grace à Gmail plus maintenant.

Les créateurs de campagne d’email pourront donc savoir, pour les adresses emails de type gmail, qui a ouvert l’email et quand !

C’est une précieuse information que vient de libérer Google, voyons si les autres webmails (hotmail, yahoo, orange, laposte.net) vont le suivre sur ce chemin…