2012-01-22 3 views
6

Je crée une application web où les utilisateurs voteront pour certains candidats en cliquant sur le pouce en haut ou en bas, et ces utilisateurs n'auront aucun compte sur le site.Empêcher le double vote

Quelle est la meilleure technique à utiliser? Est-il nécessaire d'utiliser captcha pour plus de protection contre le spam?

Le nombre de votes devrait être de plusieurs millions, et le sujet n'est pas très critique tant que j'obtiens une précision de 95% qui conviendrait. Merci.

+0

* Pas très critique *? 95% de précision est déjà énorme. –

+0

ajouter un cookie. ou stocker des adresses IP si vous avez vraiment peur. – neeKo

+1

Votre meilleure option ici serait de définir un cookie de longue durée indiquant que l'utilisateur a déjà voté. Il y aura toujours un moyen de tromper le système, surtout si vous n'êtes pas en train de sauvegarder/suivre les comptes d'utilisateurs. – SeanNieuwoudt

Répondre

4

Vous pouvez combiner ces deux méthodes:

  • Ajouter un cookie pour éviter les votes multiples de la même machine
  • adresses IP Log et empêcher le vote plus d'un certain nombre de fois la même adresse (pour exemple, 5 fois la même heure).

Ceci permettra à plusieurs personnes de voter à partir du même réseau tout en évitant une tricherie excessive.

Vous pouvez également rendre plus difficile la construction d'un bot de vote en ajoutant un champ de formulaire caché avec un jeton qui doit être inclus dans le vote, et/ou utiliser Ajax pour le vote. Je sais que c'est relativement facile de construire un bot de toute façon, mais la plupart des tricheurs ne sont pas si intelligents.

1

Cookies et session Ids aidera, bien que les deux peuvent être perdus lorsque le navigateur est fermé (si l'utilisateur l'a permis de les supprimer). Pourtant, ils vous donneront un certain degré de précision (par exemple les électeurs paresseux ne prendront pas la peine de fermer et rouvrir leurs navigateurs).

En utilisant IP adresses fonctionnerait également, mais comme @ Michael Dillon a déclaré que les gens sur la même adresse IP (même routeur) ne seront pas en mesure de voter.

1

Vous avez plusieurs options, dont vous pouvez utiliser tout ou partie.

Vous pouvez enregistrer l'adresse IP, puis vérifier par rapport à l'adresse IP, mais cela n'est pas indicatif d'une personne spécifique, juste un ordinateur et parfois pas un seul ordinateur.

Vous pouvez également écrire un cookie sur le navigateur d'un utilisateur, mais un utilisateur peut utiliser un autre navigateur, la machine etc.

vous pourriez Dans la session d'un utilisateur de créer une variable de session, bien que si vous attendez un trafic très élevé ce peut ne pas être la meilleure option, et empêche seulement le nouveau vote dans la même session.

Si vous envisagez un captcha, vous pouvez également demander à l'utilisateur de fournir une adresse e-mail, puis vous êtes assuré d'au moins un vote par adresse e-mail. Cependant, même dans ce cas, vous ne pouvez pas vous garantir d'adresses e-mail valides.