web-dev-qa-db-fra.com

Existe-t-il un moyen de refuser plusieurs votes d'un même utilisateur sans forcer l'authentification?

Je cherche un moyen d'interdire le truquage des votes (cache/effacement des cookies, etc.) sans obliger l'utilisateur à sauter à travers les cerceaux (enregistrement, authentification, etc.). Des idées?

4
GoodShovel

Vous pouvez combiner plusieurs méthodes:

  • L'authentification IP susmentionnée.
  • Stockez les informations dans un cookie ou une session.
  • Mesurer le nombre de "mêmes" votes dans un laps de temps très court (même si vous pouvez simplement les marquer comme suspects)

Chacun est facilement surmonté pour ceux qui savent comment, mais la question, comme l'a dit Dan Petker, est quelle est l'importance du vote?

Alternativement, vous pouvez utiliser une technique d'authentification simple comme OpenID ou Facebook, qui permettra à la plupart des utilisateurs de terminer le processus extrêmement rapidement.

4
Dan Barak

Une option consiste à associer chaque vote à l'adresse IP de l'utilisateur. Si vous voyez un autre vote provenir de la même adresse IP, vous pouvez le refuser.

Cette solution présente cependant deux inconvénients majeurs. La première est qu'il n'y a pas de mappage un à un des ordinateurs vers les adresses IP dans de nombreuses configurations de mise en réseau domestique ces jours-ci. Par exemple, si vous avez trois ordinateurs tous connectés à un seul routeur/modem, ils partageront probablement la même IP et donc un seul vote des trois ordinateurs serait autorisé, même si vous devriez autoriser les trois.

L'autre inconvénient est que tout ce qu'il faut, c'est que quelqu'un utilise Tor ou un autre logiciel d'anonymisation pour contourner complètement cette restriction.

Je suppose que tout dépend de la sécurité de ce processus de vote et de la difficulté avec laquelle vous voulez que les attaquants potentiels causent des problèmes. Si la sécurité et l'intégrité du processus de vote sont prioritaires, alors vous devrez vraiment envisager d'exiger une sorte d'enregistrement/d'authentification pour vous assurer que les choses ne sont pas truquées.

Edit: Une autre idée ...

Je pensais à ce problème sous un angle légèrement différent et j'ai eu une autre idée. Dans votre question, vous mentionnez que vous ne voulez pas que les utilisateurs sautent dans les cerceaux et suggérez que l'enregistrement/l'authentification soit considéré comme un "cerceau". Que se passe-t-il si l'inscription n'a pas eu pour être un cerceau? Vous pourriez rendre le processus d'inscription si simple que les utilisateurs ne considéreraient pas que c'est une raison pour s'abstenir de voter.

Par exemple, je n'ai découvert ui.stackexchange qu'aujourd'hui et je voulais plonger et commencer à répondre aux questions/votes positifs/etc. tout de suite. Pour ce faire, cependant, je devais m'inscrire. Cependant, stackexchange utilise OpenID comme un moyen de créer votre compte, ce qui signifie qu'en deux clics, j'étais inscrit ici et prêt à partir.

Est-ce quelque chose que vous pourriez faire sur votre site? Sans avoir implémenté les technologies directement, il semble qu'OpenID, Facebook Connect, etc. offrent tous des moyens rapides et faciles d'ajouter une authentification à un site sans forcer l'utilisateur à remplir de longs formulaires d'inscription - le meilleur des deux mondes!

3
Dan

Combinez quelques aspects différents: adresse IP, user-agent, version Flash, etc. L'identité résultante ne sera pas garantie à 100% unique, mais elle est beaucoup plus proche de votre objectif qu'une simple IP.

2
Virtuosi Media

La question que vous devez vous poser est:

Quelle est la gravité du problème si un utilisateur vote plusieurs fois?

Par exemple, s'il y a quelque chose de réel en jeu - de l'argent, un prix physique, etc., la tentation est plus grande d'essayer de truquer le vote. Dans ces cas, vous devrez probablement insister sur l'enregistrement des utilisateurs (mais suivre la voie OpenID/Facebook Connect comme le suggère Dan Petker pourrait être le moyen le moins pénible ici).

Si, cependant, c'est "seulement amusant", vous pourriez finir par dépenser beaucoup de temps (et d'argent) à essayer d'arrêter quelque chose que la plupart des gens ne se livreront pas. Le montant des efforts que vous consacrez devrait être proportionnel au coût de la fraude électorale .

Cela dit, cependant, il est étonnant de voir les efforts que certaines personnes déploieront pour "voter" sur les systèmes de vote afin de s'octroyer plus de points.

2
ChrisF

Les techniques utilisées par l'EFF pour le projet Panopticlick peuvent être très pertinentes ici:

"Lorsque vous visitez un site Web, vous autorisez ce site à accéder à de nombreuses informations sur la configuration de votre ordinateur. Combinées, ces informations peuvent créer une sorte d'empreinte digitale - une signature qui pourrait être utilisée pour vous identifier et identifier votre ordinateur".

Les résultats statistiques de cette expérience sont disponibles mais les informations techniques sont limitées à un court article - tous deux liés à partir de la page d'accueil. Néanmoins, il fournit une bonne inspiration sur les empreintes digitales du navigateur, qui est la technologie qui résoudra la plupart de vos problèmes.

0
Jean-Marc Liotier

Vous pouvez utiliser un cookie ou une adresse IP pour vous assurer qu'ils ne votent pas plus d'une fois.

0
abrudtkuhl