web-dev-qa-db-fra.com

Pouvons-nous faire mieux que CAPTCHA?

Il existe différentes formes de CAPTCHA et d'autres stratégies pour empêcher le spam. Pour en énumérer brièvement quelques-uns:

  • Questions mathématiques ou Word simples.
  • Texte obscurci.
  • CAPTCHA basés sur JavaScript.
  • Image CAPTCHA.
  • Honeypots.
  • CAPTCHA audio.
  • Filtrage basé sur des règles comme Akismet.
  • Augmentation progressive des privilèges basée sur la confiance.
  • Modération de communauté comme StackExchange.
  • Spam dissuade les attributs nofollow des liens.
  • Incitations à publier du bon contenu.
  • Modération administrative.
  • Listes blanches et listes noires IP.
  • Honte publique et honte.

Chacune de ces approches a des obstacles à surmonter en raison de problèmes d'accessibilité, de limitations techniques, de restrictions de temps, de problèmes de conversion ou de la taille de la communauté. Les systèmes que j'ai vu fonctionner le mieux sont une combinaison de plusieurs des techniques ci-dessus. Cependant, je ne peux m'empêcher de penser que nous manquons quelque chose d'important en matière de lutte contre le spam.

Je sais que ce serait peut-être trop de souhaiter une solution unique pour tous, mais peut-être que la prévention du spam pourrait être envisagée sous un angle différent. Je soupçonne qu'il pourrait y avoir plus à explorer en termes de la façon dont l'interface utilisateur influence le comportement humain.

Je trouve que le fait d'avoir des contraintes stimule souvent la créativité, donc étant donné les contraintes suivantes, pouvons-nous trouver de nouveaux outils à ajouter à notre arsenal contre le spam du point de vue de l'interface utilisateur?

  1. Il doit être accessible.
  2. Il doit être non perturbateur et transparent pour l'utilisateur final.
  3. Il ne peut pas détourner ou détourner l'attention de l'objectif principal de la page.
  4. Il doit être automatisé ou nécessiter très peu de modération à grande échelle.
  5. Il ne peut pas s'agir d'un service tiers.
46
Virtuosi Media

Je me demande si nous pouvons exploiter certaines des propriétés physiques qui diffèrent entre de vraies personnes à l'aide de navigateurs et de spambots.

Les deux propriétés qui me viennent à l'esprit sont séquence et rythme .

Séquence: Une personne réelle téléchargera une page avant de soumettre un commentaire; certains spambots passent directement à l'envoi d'une soumission de formulaire.

Pouvons-nous détecter si nous avons déjà servi le formulaire à cet utilisateur et rejeter les soumissions là où il n'a pas téléchargé le formulaire?

Pace: Une vraie personne prend généralement quelques secondes à quelques minutes pour entrer son commentaire avant d'appuyer sur soumettre; un spambot peut télécharger la page et envoyer immédiatement le commentaire de spam.

Est-il raisonnable de rejeter les soumissions qui se produisent trop rapidement (disons <2 secondes) ou trop lentement (disons> 24 heures)?

22
Bevan

Bien que cela semble être une réponse désinvolte, XKCD avait en fait une solution conceptuelle à ce problème, trouvée ici: http://xkcd.com/810/ . En bref, l'alternative consiste à lire un commentaire utilisateur indépendant et à indiquer ensuite si le commentaire est constructif ou non constructif. Cela a pour bonus d'empêcher les gens de poster des commentaires comme "ça craint" et autres. Cela peut être souhaitable ou non en fonction de votre cas d'utilisation prévu, mais je sais que j'aimerais en voir moins.

Cette solution présente quelques problèmes, tels que la façon de créer un ensemble de base de commentaires constructifs/non constructifs qui peuvent être utilisés comme ensemble de test. Soit quelqu'un doit d'abord examiner manuellement ces commentaires, ce qui ne satisfait pas à votre quatrième exigence, soit vous devez créer une sorte de système pour afficher les commentaires "en attente" aux utilisateurs vérifiés (disons 50 fois environ) pour obtenir un consensus sur le "bon" réponse. Évidemment, cela suppose que la chose que vous essayez d'utiliser des alternatives CAPTCHA pour protéger est un système de commentaires, et que vous avez suffisamment d'utilisateurs générant des commentaires (ou accès à un ensemble de commentaires non liés) pour avoir une base de référence réelle.

Edit: Pendant que mon cerveau s'engageait (je n'ai pas encore pris mon thé), selon la longueur des commentaires, vous pouvez afficher plus d'un commentaire à indiquer comme constructif ou non, ce qui vous permet de présenter de manière transparente le "en attente" "des commentaires aux utilisateurs pour atteindre votre consensus sur ce commentaire sans que personne ne se sente obligé de faire un travail supplémentaire.

6
Josef Schelch

Je viens de lire un article très intéressant à ce sujet il y a quelques jours. Il a des alternatives créatives, vous devriez le vérifier

http://webdesignledger.com/tips/why-you-should-stop-using-captchas

6
Pam Rdz

Avoir de l'argent est humain

La solution la plus efficace que j'ai jamais rencontrée pour faire la différence entre les robots et les gens est de savoir s'ils ont ou non dépensé de l'argent sur Internet.

Pour utiliser un e-mail comme identifiant de compte commun pour cet exemple. Si vous savez qu'un e-mail a déjà acheté un article en ligne, que ce soit chez vous, un concurrent, Amazon ou tout marché numérique, vous pouvez être sûr à 100% qu'il s'agit d'un humain et non d'un robot de spam.

Cela fonctionne aujourd'hui et ne cessera jamais de fonctionner car le coût d'achat d'un article dépassera toujours la valeur du spam qui peut être posté par la suite, ce qui rend le spam économiquement impossible.

Ce n'est pas très faisable pour de nombreuses personnes qui n'opèrent pas dans le commerce électronique ou dans des industries connexes, mais dans les situations où vous disposez de ces données, vous avez un moyen sans faille d'identifier si une personne est humaine. Plus besoin de leur poser des questions délicates.

4
anthonyryan1

Je suis intéressé à explorer/revisiter ce fil, et je voudrais savoir si cela pourrait fonctionner ou non compte tenu de la technologie actuelle:

  1. Les utilisateurs se voient présenter une image de la carte du monde, où l'image peut être décalée au hasard horizontalement sur l'écran à chaque fois afin que vous puissiez vous souvenir de la position géographique comme une position coordonnée sur l'image.

  2. Une question est posée aux utilisateurs "par exemple, où êtes-vous dans le monde en ce moment" concernant une position géographique qui peut être vérifiée (par exemple via une adresse IP ou une adresse machine).

  3. L'entrée utilisateur est mise en correspondance avec l'image et si les réponses correspondent, le captcha est terminé.

Je pense que c'est rapide, peut probablement être rendu accessible, mais nécessite probablement un traitement javascript. Mais cela ne dépend que du traitement de l'utilisateur et d'une réponse très rapide et simple qui ne peut pas être simulée de manière fiable par les bots (ou est-ce possible?). J'explore également quelques idées avec des captchas basés sur les gestes, mais je ne sais pas s'il y a des problèmes spécifiques avec cela également.

2
Michael Lai

L'analyse de l'activité sociale peut être utile.

Par exemple, si quelqu'un s'est connecté à votre site en utilisant Facebook connect et que vous voyez qu'il est inscrit depuis 3 ans, qu'il a 50 amis et une photo de son chat dans la galerie, vous ne pouvez demander CAPTCHA à cet utilisateur qu'à l'occasion.

Au contraire, si un utilisateur était inscrit sur Facebook hier et a exactement 256 amis (je plaisante), vous voudrez peut-être lui demander d'entrer CAPTCHAs les 10 premiers jours environ.

Bien sûr, cette approche repose sur la capacité de Facebook/Google/etc. pour supprimer les comptes piratés assez rapidement.

0
Dmitry Grigoryev

Et si un petit gibier était utilisé comme test? Un puzzle simple qui divertit les utilisateurs afin qu'ils ne remarquent pas vraiment que c'est pour la prévention du spam ... comme une version simplifiée de Crayon Physics .

0
user2588