Pergunta

Estou fazendo um site (usando php, javascript e mysql) com um sistema de votação que permite às pessoas votar anonimamente, mas apenas uma vez.

Isso significa que meu sistema tem que saber quem votou (porque eu tenho que verificar se o usuário já voteu ou não), mas não queria armazenar o nome de usuário ou o endereço IP do usuário no banco de dados (arruinar o anonimato).Eu não sei começar, preciso de algumas diretrizes;O que devo procurar?

Foi útil?

Solução

Seu pior problema é como garantir que seus usuários apenas vote uma vez, mas esse não é o ponto da pergunta: você está perguntando como garantir a anonimidade

Isso é bastante fácil: trate o que você usa para votação única como senha e hash.Então, vamos dizer para o amor do argumento que você está usando o IP.Estou ciente dos problemas com isso, mas vamos supor que esta é a sua escolha.

  • Votos do usuário
  • você hash o ip e salvá-lo.
  • Você pode até ir tão longe quanto salvá-lo em um local diferente.Não há necessidade de salvar o que Hash votou qual opção.
  • Votos do usuário novamente -> IP-Hash é alberado no banco de dados.
  • Para não doar se alguém já votou, não responda "Você já votou", mas simplesmente não salve o voto.Desta forma, não há como sequer saber se houve um voto dessa máquina

Mente você, isso é sobre a anonimidade, não sobre como garantir a votação única.

Outras dicas

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top