2011-12-28 15 views
5

Quiero evitar que los usuarios voten más de una vez en mi sitio web, utilicé dos métodos para hacerlo, ¡pero a nadie le va tan bien!

¿Cómo puedo evitar que los usuarios voten más de una vez?

  1. utilizando galletas.
    el problema: los usuarios pueden borrar la cookie y volver a votar una y otra vez ..

  2. utilizando la tabla de base de datos.
    El problema: ¡los usuarios no deben ser forzados a registrarse en mi sitio web!

Entonces, ¿Cómo puedo resolver este problema?

+0

Dirección IP ....? – Ben

+1

@Ben - Si el ISP de los usuarios proporciona IP dinámica, ¿entonces? – Bibhu

+0

@Ben ¿Qué pasa si el usuario vota desde la computadora de la empresa? ¡todos los usuarios de este país evitarán votar! – dotfreelancer

Respuesta

5

No creo que tenga muchas opciones ya que no está forzando a los usuarios a registrarse. Necesita usar sesión o cookies. Como se señaló en los comentarios, también puede verificar la dirección IP. Pero si la audiencia prevista usa una dirección IP dinámica asignada por su ISP, entonces esta solución también falló.

Si es posible se puede pedir al usuario registrado con su facebook/ID de Google, como está haciendo stackoverflow

0

No hay una manera infalible para lograr lo que desea desde una aplicación web y especialmente sin que los usuarios registrar .

6

Tiene sus dos respuestas, debe decidir cuál es la mejor. Ninguna opción va a ser a prueba de balas. Se trata de desacelerarlos, y qué nivel de efectividad es aceptable para ti.

Generalmente, una cookie es la manera aceptable de hacerlo. Sí, las cookies se pueden borrar, pero si el deseo de evitar la votación duplicada es que es importante, entonces el registro es la única forma efectiva de evitarlo. Cualquier otro mecanismo probablemente podría ser superado por aquellos que lo deseen. Puede usar algo como Evercookie, pero generalmente no creo que sea una buena práctica hacerlo. Si hace que su proceso de registro sea simple pero efectivo, algunos usuarios lo harán.

Una dirección IP es tan defectuosa como la mayoría de IPs redisenciales no están asignadas estáticamente. Alguien podría restablecer su módem y obtener una nueva dirección IP. O peor, alguien podría restablecer su módem, obtener una dirección IP que ya haya visitado el sitio y no poder votar. Otro escenario es usuarios detrás de NAT. Si 200 personas comparten una IP con NAT, solo una de ellas podrá votar.

Usted podría hacerse creativo con la dirección IP. Sigue usando la cookie, porque eso será efectivo. Si comienza a detectar varios votos desde la misma dirección IP (porque borraron sus cookies), muestre un CAPTCHA. Si no es alguien que intenta abusar del sistema, entonces todavía tienen la oportunidad de votar. Esto ayudará a evitar la votación automatizada, y ralentizará a los usuarios lo suficiente como para que abusar de su sistema de votación no valga la pena. Esto también puede ser derrotado, es el nivel de efectividad aceptable para usted. Incluso el registro no es puramente 100% efectivo, pero probablemente el más efectivo. ¿Qué evitaría que alguien se registrara muchas veces con diferentes direcciones de correo electrónico?

+0

sí, el CAPTCHA es la palabra problemática ... gracias. – dotfreelancer

0

Este sitio (Desbordamiento de pila) lo hace bien, mediante el registro. IP es una muy mala idea porque todas las personas detrás de un proxy/servidor no pueden votar.La mayoría de las personas tienen múltiples navegadores, ni siquiera necesita borrar la cookie de votación para votar nuevamente, solo use otro navegador. Como se mencionó, OpenID es la ruta de menor impacto + más alta seguridad. Pueden sortear eso a través de múltiples cuentas.

Cuestiones relacionadas