¿Cómo manejas el voto público (a alguien le puede "gustar o no" un artículo) y restringirlo a votar solo una vez?

¿Tengo que usar cookies? (con el problema de que puede eliminar la cookie y votar x999 veces) o ¿guardo su IP en la base de datos?

3
Unitech 25 may. 2011 a las 05:18

5 respuestas

La mejor respuesta

La solución tiene tres partes:

  1. use una cookie para evitar el doble voto
  2. almacenar todos los eventos de votación en la base de datos (ip, agente de usuario, identificación de encuesta / artículo, votación)
  3. implementar un algoritmo que se ejecutará cada 24 h para eliminar los dobles votos que escaparon del # 1. El algo usará datos del # 2

Usar solo la IP no es apropiado, ya que puede dejar a toneladas de personas fuera del sistema de votación.

2
cherouvim 25 may. 2011 a las 01:29

Si el usuario se autentica, es decir, vota como sí mismo, arroje un registro en la base de datos que indique que el usuario ya ha votado. Para los votantes anónimos, está limitado a cookies, almacenamiento local, etc.

0
John 25 may. 2011 a las 01:24

Yo diría que haga ambas cosas para que si hay personas con IP dinámica, tengan que cambiar la IP y eliminar las cookies al mismo tiempo.

0
Sword22 25 may. 2011 a las 01:24

En lugar de cookies, podría usar evercookie, que es mucho más difícil (pero aún posible) omitir.

evercookie es una API de JavaScript disponible que produce cookies extremadamente persistentes en un navegador. Su objetivo es identificar a un cliente incluso después de haber eliminado las cookies estándar, las cookies Flash (Objetos locales compartidos o LSO) y otras.

0
Philip 25 may. 2011 a las 01:28

Usa la IP.

Si bien es posible que muchas personas voten solo una vez desde detrás de una IP, la alternativa es trivial para evitar (no almacenar cookies).

1
alex 25 may. 2011 a las 01:24