2009-02-24 6 views
0

Nous avons un site avec des articles pour lesquels les utilisateurs peuvent voter. Quelle est la méthode recommandée pour limiter les votes?Quel est le meilleur moyen de limiter le vote sur notre site?

Il y a tellement de sites qui ont mis en œuvre le vote que je connais des solutions possibles, mais je suppose que c'est une méthode recommandée pare-balles de base en fonction des sessions, IP, délai, etc.

Quel est le meilleur moyen d'envoyer des votes à partir du navigateur? Demande GET/POST ou AJAX de base? Est-il nécessaire d'utiliser un identifiant de requête prégénéré?

Mise à jour: Nous ne pouvons pas utiliser l'enregistrement de l'utilisateur.

+0

Une question similaire ici: http://stackoverflow.com/questions/572723/stopping-users-voting-multiple-times-on-a-website –

Répondre

0

Le meilleur moyen d'éviter les doublons est de n'avoir que des utilisateurs connectés. De cette façon, vous pouvez stocker leur vote dans un stockage de données (DB).

Si vous souhaitez autoriser les utilisateurs à voter anonymement, utilisez la session du navigateur. L'inconvénient de ceci est qu'ils peuvent simplement fermer/rouvrir le navigateur et révoquer.

Je ne recommanderais pas d'utiliser IP pour restreindre les votes, car de nombreux utilisateurs peuvent être derrière un proxy, il semblera qu'ils ont la même adresse IP. Si un de ces utilisateurs vote, les autres ne pourraient plus voter.

0

Il n'y a pas une solution pare-balles à moins que vous avez besoin d'une authentification grave (niveau bancaire). Cela dit, la solution de base consiste à utiliser des sessions (cookies). La limitation des adresses IP est une très mauvaise idée (par exemple, je partage une adresse IP avec environ 20 autres personnes).

0
  • Utiliser les utilisateurs authentifiés
  • Ne pas bloquer IP
  • Ne pas vérifier votes par les cookies
  • Essayez d'utiliser captcha si même IP vote plusieurs fois avec différents comptes

Si vous souhaitez autoriser les utilisateurs non authentifiés, vous devez utiliser captcha pour éviter les bots. Mais encore je pense que le meilleur est de permettre le vote aux utilisateurs authentifiés seulement. Vous pouvez faire quelque chose comme, un utilisateur de moins de 1h/2h ne peut pas voter pour éviter que les robots créent des comptes et alimentent les votes.

2

[...] pare-balles [...]

Impossible.

Limiter par compte contribuera - Les adresses IP sont loin de dynamique et facilement modifiable pour être à distance « sécuriser ". Stackoverflow le fait plutôt bien (il y a eu un blog récent à ce sujet, "New Question/Answer Rate Limits") - vous avez essentiellement des comptes où vous devez participer activement pendant un certain temps avant tu peux voter. Ensuite, vous êtes limité (par compte) jusqu'à ce que vous ayez participé un peu plus longtemps. Ensuite, les limites sont supprimées, donc vous n'agacez pas les utilisateurs plus actifs (plus fiables).

Si vous voulez juste éviter le vote causal, "accidentel", limiter par cookie, et éventuellement aussi par IP (en gardant à l'esprit plus d'un utilisateur peut être derrière une seule IP). Si vous voulez essayer et prévenir abus, exiger des comptes que vous ne pouvez pas simplement cliquer sur "inscription" pour (ou plutôt, un que vous ne pouvez pas écrire un "clic 2000 fois" -script pour), bien que ce ne soit pas toujours possible (ou pratique)

0

La meilleure approche devrait être par user_id, un utilisateur ne peut voter qu'une seule fois sur chaque défi, chaque défi devrait avoir un identifiant unique.

  • Permet aux nouveaux utilisateurs de s'inscrire.
  • Vérifiez si l'utilisateur est authentifié.
  • Vérifiez si l'utilisateur a déjà voté pour l'identification du challenge, avant de créer un nouveau vote.
Questions connexes