J'ai un formulaire e-mail de site Web. J'utilise un CAPTCHA personnalisé pour empêcher le spam provenant de robots. Malgré cela, je reçois toujours du spam.
Pourquoi? Comment les robots battent-ils le CAPTCHA? Utilisent-ils une sorte d'OCR avancé ou obtiennent-ils simplement la solution là où elle est stockée?
Comment puis-je empêcher cela? Devrais-je changer de type de CAPTCHA?
Je suis sûr que les courriers électroniques proviennent du formulaire, car ils proviennent de mon expéditeur de courrier électronique qui envoie les messages du formulaire. Aussi le style de la lettre est le même.
Pour mémoire, j'utilise PHP + MySQL, mais je ne cherche pas de solution à ce problème. Je m'intéressais à la situation générale dans laquelle les robots battaient ces technologies. Je viens de raconter cette situation à titre d'exemple, pour que vous puissiez mieux comprendre ce que je vous demande.
Réponses:
Deux manières les plus simples de traverser CAPTCHA:
Utiliser des fermes humaines, c’est-à-dire demander aux gens de remplir les CAPTCHA contre de l’argent, comme le fait ProTypers .
Utilisez un OCR.
Il peut également y avoir un bogue dans le mécanisme CAPTCHA lui-même ou dans l’application environnante, permettant à quelqu'un de contourner le CAPTCHA.
En passant, l' article du W3C intitulé Inaccessibilité de CAPTCHA: Alternatives aux tests de Visual Turing sur le Web explique également comment les CAPTCHA pourraient être compromis:
Alors, comment pouvez-vous prévenir ces attaques?
Si votre CAPTCHA est implémenté sur mesure, vous pouvez essayer de passer à un logiciel populaire, tel que reCAPTCHA .
Cela vous aidera si soit votre propre CAPTCHA était trop facile à OCR, ou s'il y avait un bogue qui a été exploité avec succès.
Si vous utilisez un mécanisme CAPTCHA populaire, le passage à un mécanisme personnalisé ou à un autre très populaire risque d’empêcher l’OCR.
Techniquement, rien n’empêcherait les fermes humaines: vous pouvez créer des GIF animés dans lesquels plusieurs cadres affichent un texte différent très rapidement et si un seul cadre est réellement visible par l’utilisateur, vous pouvez déformer ou plier le texte dans toutes les directions ou trouver de nouveaux moyens alternatifs de prévention. Les OCR issus de la reconnaissance de texte, mais les humains payés pour la résolution de CAPTCHA parviendront à les résoudre.
Vous voudrez peut-être passer du visuel CAPTCHA au son (si vous n'utilisez pas déjà les deux et vous devriez le faire), mais cela signifie que les utilisateurs malentendants ne pourront pas utiliser votre application.
FrustratedWithFormsDesigner et GalacticCowboy mentionnés dans les commentaires CAPTCHAs spécifiques au domaine. J'ai essayé de trouver des informations sur leur efficacité, mais sans succès, voici donc mon opinion personnelle:
Les CAPTCHA spécifiques à un domaine peuvent être extrêmement gênants lorsque les utilisateurs réels n'ont aucune idée de la réponse.
Exemple: je visite une page sur un site Web axé sur les films. Je remarque une erreur dans un article et je souhaite faire un commentaire pour en informer l'auteur. Le formulaire de commentaires me demande, en tant que mécanisme CAPTCHAs, de fournir le nom de l'actrice affiché sur une photo. Je ne sais pas du tout qui est cette actrice, je ne peux donc que quitter le site Web (ou passer les deux prochaines minutes avec Google Images).
Autre exemple: un site Web demande de donner un synonyme de "mystérieux". Aussi simple que cela puisse paraître pour une personne non-handicapée qui parle anglais couramment, il serait impossible à résoudre sans aide extérieure pour les personnes ne parlant pas bien l'anglais ou les personnes ayant une déficience intellectuelle, sans compter le fait que trouver des synonymes ou des antonymes toujours délicat.
La plupart de ces problèmes spécifiques à un domaine peuvent être résolus par programme. Les deux exemples que j'ai donnés sont facilement résolus à l'aide de ressources externes (dictionnaire Google Images et Synonymes). Celui sur les transistors donné à titre d'exemple par FrustratedWithFormsDesigner est meilleur, mais peut toujours être résolu avec un bot sur mesure.
Aucun ne résiste aux fermes humaines.
Soit ils génèrent des données, tout comme un texte ordinaire, les CAPTCHA dessinent des caractères déformés, auquel cas l’algorithme de génération peut lui-même être exploité pour ajuster les robots, soit ils trouvent des données quelque part, tout comme reCAPTCHA prend du texte dans des livres numérisés , auquel cas utilisez ces données pour les utiliser (par exemple, si vous prenez des mots d'un dictionnaire et demandez à l'utilisateur de fournir des synonymes, le bot peut utiliser le même dictionnaire pour réussir à 100%).
la source
Ajout à la réponse de MainMa ...
Les spammeurs incitent les autres à faire le CAPTCHA pour eux
Fondamentalement, les spammeurs ont créé un site warez ou un site porno qui semble contenir un CAPTCHA, mais ce n’est pas un véritable CAPTCHA. Un bot extrait le CAPTCHA du site qu’il souhaite spammer (ou exploiter autrement), puis l’affiche sur le site warez ou sur un site pornographique où quelqu'un le complète pour lui. Ensuite, la valeur CAPTCHA est renvoyée à leur bot ...
Un peu plus sur les spammeurs
J'utilise reCAPTCHA et j'ai trouvé que cela ne valait rien. J'utilise également un filtre anti-spam personnalisé qui capture le spam qui a dépassé reCAPTCHA et je dois le vérifier tous les deux ou trois jours pour y détecter les faux positifs.
Mon forum est également entièrement personnalisé et génère très peu de trafic. Je ne crois pas que quiconque ait codé une attaque spécifique sur mon site. Malgré tout, mon filtre anti-spam intercepte 2k messages par jour! Aucun n'est jamais affiché sur le site. Les spammeurs ne tirent aucun avantage de l'envoi de spams, mais ils le font toujours.
Je peux voir des tendances dans les tentatives de spam parce que je les enregistre tous. Je peux vous dire ceci: mis à part comment ils parviennent à se défaire de la CAPTCHA, les spammeurs utilisent clairement une technique de force brute faisant varier les champs renseignés ainsi que le type de mélange de données et de mots qui les remplit. Apparemment, ils le font à si bon marché (y compris en contournant la CAPTCHA) au point qu’il n’est même pas rentable d’analyser les sites individuels pour voir si ce qu’ils font fonctionne ou non.
Année après année, ils continuent de cibler mon site avec des milliers de pourriels par jour pour en recevoir un par mois, et celui-ci est supprimé manuellement un jour plus tard. C'est si bon marché de faire du spam!
Cela va être une bataille pour les années à venir. Particulièrement pour les petits sites modérateurs individuels comme le mien.
EDIT 22/06/2017 : Je tiens à ajouter que, depuis cette publication, reCAPTCHA a été complètement remodelé et que, depuis la rédaction de cet article, il fonctionne parfaitement. Bien que je soupçonne qu’il ya un peu de faux positifs ou que c’est un problème pour les utilisateurs, les publications ont un peu chuté depuis que je l’ai implémenté. Les 2 grands changements sont
1) Ils utilisent des images au lieu de texte (donc plus d'OCR)
2) Ils le combinent avec l'activité des utilisateurs sur tous les sites utilisant reCAPTCHA. Donc, si vous avez dépassé le reCAPTCHA sur le site A, accédez au site B, il ne vous demandera peut-être même pas de prouver que vous êtes humain! Aussi (je pense) si vous frappez trop de reCAPTCHAs sur trop de sites, cela vous signalera également. Je suis sûr qu'il utilise d'autres types d'intelligence artificielle en fonction de l'activité des utilisateurs.
Je suis sûr que c'est juste une question de temps avant que les spammeurs battent ça aussi ...
la source
Avez-vous déjà essayé d'utiliser captcha chat-chien? J'ai un forum qui avait captcha standard et l'a changé et je n'ai pas de spams invités depuis.
la source
Il est possible que votre site soit la cible d'une main-d'œuvre exploitée et extrêmement onéreuse et qu'un être humain saisisse manuellement vos phrases CAPTCHA.
Si la solution que vous utilisez n'est pas trop sophistiquée, il est possible que votre attaquant réalise la reconnaissance d'image.
Il est également possible que votre code contienne un bogue qui permet de contourner le CAPTCHA.
Ne présumez pas qu'un robot bat votre CAPTCHA. Pensez à votre système de manière holistique et voyez s'il a été compromis.
la source
D'autres ont discuté de la manière dont les spammeurs contournent les CAPTCHA. Voici quelques conseils sur comment puis-je éviter cela :
Notez qu'il n'y a pas de solution miracle et que les spammeurs semblent avoir une longueur d'avance sur le match. Donc, vous devrez utiliser une combinaison de plusieurs techniques
la source
Pour faire écho aux autres réponses, vous rencontrerez probablement des robots qui utilisent des fermes humaines pour saisir les captchas.
J'ai récemment discuté d'une technique (et publié un module Drupal d'accompagnement) qui bloque les robots de spam en exigeant le JavaScript côté client. Autant que je sache, cela a fonctionné avec une efficacité de 100% sur tous les sites qui ont utilisé ce code. L'idée est d'utiliser AJAX pour générer un hachage unique et le soumettre avec les autres données de formulaire, puis calculer le même hachage sur le backend une fois le formulaire soumis et comparer les deux valeurs.
Tous les détails dans mon article de blog (comme par hasard, puisque vous avez mentionné l'utilisation de PHP + MySQL, il s'agit des mêmes technologies que celles décrites ici) - Version du module: Badbot; éliminer le spam ...
la source
Si votre site est twitter et que quelqu'un l'a ciblé spécifiquement (plutôt qu'un bot le trouvant), alors vous pouvez arrêter de lire ...
Sinon, il pourrait être intéressant de ne pas faire ressembler votre formulaire à un formulaire. 1. N'ayez pas de champs avec 'e-mail' dans le type, le nom ou l'espace réservé, utilisez des noms abrégés ou trompeurs pour tous les champs. 2. N'utilisez pas un élément de formulaire HTML et un bouton d'envoi. Utilisez plutôt AJAX pour l'afficher au clic d'une div normale (stylé pour ressembler à un bouton). 3. Ne mettez pas l'événement onclick dans le code HTML, ajoutez un écouteur en JavaScript. 4. Utilisez JavaScript pour renseigner les conseils «entrez votre adresse e-mail ici», car il est possible que des bots ne déclenchent pas JS lors de la navigation sur des pages (pas sûr sur celui-ci, mais je le fais quand même).
la source