Question

Quels mécanismes connaissez-vous pour empêcher que votre site soit exploité par des spammeurs anonymes ?

Par exemple, disons que j'ai un site sur lequel les gens peuvent voter pour quelque chose.Mais je ne le faites pas je veux que quelqu'un spamme quelque chose jusqu'en haut.J'ai donc trouvé (a) créer un compte et n'être autorisé à voter qu'une seule fois et (b) CAPTCHA pour réduire le spam.Quelles autres méthodes connaissez-vous et dans quelle mesure fonctionnent-elles ?

Était-ce utile?

La solution

La grande chose que j'ai remarquée, c'est que quoi que vous fassiez, vous voulez que votre système soit unique.Vous souhaitez qu'un attaquant doive adapter son programme d'automatisation à votre site spécifique, plutôt que de simplement lui lancer un script préexistant qui fonctionnera presque partout.Il n'est même pas nécessaire qu'il soit sécurisé cryptographiquement ;il suffit de rendre votre site un peu différent de la norme.

Cela ne signifie pas que vous ne pouvez pas ou ne devez pas utiliser quelque chose comme un widget captcha prédéfini.Utilisez-en absolument un comme point de départ !Cela signifie simplement que vous devez le personnaliser quelque part afin qu'il se produise quelque chose de supplémentaire qui soit en dehors de la norme et qui brisera tout script préexistant qui pourrait normalement le vaincre.

Si votre site devient suffisamment grand pour que des attaquants le ciblent spécifiquement, alors votre simple petite personnalisation ne tiendra probablement plus et vous auriez peut-être fait quelque chose d'un peu plus spécial et réfléchi à la vraie cryptographie et tout ça.Mais c’est une de ces choses qui constituent un « bon » problème.

Autres conseils

alt text

Depuis xkcd

Pour un système CAPTCHA, je recommande chaleureusement reCAPTCHA.

Les CAPTCHA traditionnels générés par ordinateur finalement être brisé en développant un système suffisamment intelligent.Par exemple, voici quelqu'un qui prétend casser le CAPTCHA de Google, autrefois considéré comme incassable, avec un taux de réussite de 30%.reCAPTCHA, par définition, vous montre uniquement les images qui ne peuvent pas être reconnues par reconnaissance optique de caractères.

Et en même temps, les efforts de vos utilisateurs seront orientés vers le bien commun : ils contribuent à numériser les livres en reconnaissant les mots qui ne peuvent pas être reconnus automatiquement.

Voir ici pour plus d'explications et pour l'essayer.

  • Limiter le nombre de votes par adresse IP à la fois
  • Bloquez les proxys anonymisés.
  • Pour voter :Que diriez-vous de mélanger la valeur qui doit être renvoyée par le formulaire "par session".Une fois que « 1 » signifie le premier élément, « 2 » signifie le second.Alors "77" signifie le premier élément, "812" signifie le deuxième, ...Cela pourrait être quelques calculs simples en coulisses, mais cela empêche les utilisateurs d'envoyer simplement la même requête HTTP encore et encore.
  • Ce qui a très bien fonctionné pour moi :Utilisez des formulaires AJAX, pas de simples formulaires HTTP.Techniquement, ce n'est pas beaucoup plus compliqué de simuler des votes, mais j'ai écrit un logiciel de blog simple et le seul mécanisme de protection contre le SPAM consiste à soumettre les commentaires via AJAX - pas de SPAM jusqu'à présent.

Je suis fan du CAPTCHA "champ caché".Je ne me souviens plus où j'en ai entendu parler, mais l'idée est la suivante :

  • créez votre formulaire comme d'habitude
  • ajoutez un champ supplémentaire mais cachez-le (c'est-à-dire style="display:none" sur la div ou la ligne de table environnante)
  • après la soumission, si le champ est vide, effectuez l'action appropriée (par exemple envoyer un e-mail) ;si le champ a été rempli, alors c'est un robot soumettant

Le seul cas où cela échoue est si le navigateur de l'utilisateur ne gère pas CSS (ou s'il l'a désactivé), ce qui est très rare.

Faites payer les votes, comme c'est le cas dans certaines émissions télévisées de « talents », et recevez des spams jusqu'à la banque !

Sérieusement, c'est un problème vraiment difficile, et un jour (peut-être bientôt, si vous écoutez Ray Kurzweil), les ordinateurs effectueront des tests pour éliminer les humains.Les réponses que j'ajoute à la liste présentent des inconvénients évidents, mais juste par souci d'énumération :modération (demander à des humains de faire les tests) et suivi basé sur IP (limiter le nombre de votes d'un hôte).

stackoverflow a quelques fonctionnalités qui aident à cela ;Je pense que la mesure la plus utile que vous puissiez prendre est de désactiver la possibilité de voter pour les utilisateurs anonymes et les nouveaux comptes.De cette façon, personne ne peut créer des centaines de comptes et utiliser son vote pour dominer les autres utilisateurs.Je dirais qu'exiger quelques publications ou une adhésion pendant une certaine période sont deux options décentes.

Certains diraient que vous pourriez autoriser un vote par adresse IP pour résoudre ce problème, mais j'ai joué à de nombreux jeux dans lesquels des utilisateurs malveillants dotés d'un nombre presque infini de proxys défiaient la sécurité basée sur l'adresse IP.C'est un moyen de dissuasion, mais un utilisateur averti le contournera facilement.

C'est le domaine d'étude de Calcul humain.

il y a une excellente vidéo de Luis von Ahn ici :http://video.google.com/videoplay?docid=-8246463980976635143

Il y a quelques idées dans les réponses au Le meilleur CAPTCHA sans image ? question si vous ne l'avez pas déjà vu.

J'utilise normalement une combinaison des deux :L'utilisateur anonyme est libre de tout parcourir, mais s'il veut voter, il doit alors s'inscrire.

Dans le processus d'inscription, selon la situation, j'utilise un optin thru mail (pour finaliser l'inscription et confirmer qu'au moins la boîte mail existe) et/ou un CAPTCHA.

À partir de ce moment, vous pouvez décider si l'utilisateur peut aller plus d'une fois, ou toute autre règle.

Au fait, je ne suis pas fan des contraintes basées sur IP :Il existe de nombreuses situations dans lesquelles le réseau d'une grande organisation utilise peu d'adresses IP pour tous ses utilisateurs, le risque de bloquer les utilisateurs susceptibles de voter est donc élevé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top