Question

Je fais un site Web (en utilisant PHP, JavaScript et MySQL) avec un système de vote qui permet aux personnes de voter anonymement, mais une seule fois.

Cela signifie que mon système doit savoir qui a voté (parce que je dois vérifier si l'utilisateur a déjà voté ou non) mais je ne voulais pas stocker le nom d'utilisateur ou l'adresse IP de l'utilisateur dans la base de données (ruiner l'anonymat).Je ne sais pas comment commencer, j'ai besoin de quelques directives;Que dois-je rechercher?

Était-ce utile?

La solution

Votre pire problème est de savoir comment vous assurer que vos utilisateurs ne votent qu'une fois, mais ce n'est pas le point de la question: vous vous demandez comment assurer une anonimité

C'est plutôt facile: traiter ce que vous utilisez pour un vote unique en tant que mot de passe et hachage.Donnons donc pour l'amour de l'argument que vous utilisez l'IP.Je suis au courant des problèmes avec cela, mais supposons que c'est votre choix.

  • vote utilisateur
  • vous haussez l'adresse IP et enregistrez-la.
  • Vous pouvez même aller aussi loin que l'économie dans un endroit différent.Pas besoin de sauver ce que Hash a voté quelle option.
  • vote utilisateur à nouveau -> IP-HASH est déjà dans la base de données.
  • Ne pas abandonner si quelqu'un a déjà voté, ne répondez pas "Vous avez déjà voté", mais ne sauvegardez pas le vote.De cette façon, il n'ya aucun moyen de savoir s'il y avait un vote de cette machine

Mind You, il s'agit d'une anonimité et non de comment assurer le vote unique.

Autres conseils

As Lix stated, really the only way, without storing IP addresses or forcing users to register, would be to store a Cookie linked to a session, however of course this is by no means a solution, as Cookies can easily be cleared.

You could attempt to use a persistent Cookie solution, such as evercookie, but if I were a user of a site which implemented something like that, it would annoy me more than having to register, and no matter what methods are used, they can always be circumvented to remove the Cookie/identifying information.

Another possibility is another form of persistent Cookies which got a lot of publicity last year (or was it 2012 - I forget), which utilize Flash to store Cookies. These Cookies can be accessed in multiple browsers. One such solution is flash-cookie, but again, this is likely to annoy users, and would not be 100% reliable as not all users have Flash enabled or installed.

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