votos votar veces varias una protagonistas para muchas hack google formulario encuesta concursos concurso comprar como asp.net silverlight

asp.net - veces - ¿Existe alguna manera confiable de evitar las trampas en un concurso web donde los usuarios anónimos pueden votar?



hack para votos en facebook (7)

Ciertamente puedes hacerlo difícil.

¿Qué hay de construir un perfil de usuario con cosas tales como dirección IP, navegador useragent, nombre de la máquina y cualquier otra información que pueda obtener.

Almacene el perfil para cada usuario, luego, si recibe un perfil que es similar a uno que ya está en la base de datos (tendrá que ajustarlo) puede descartar ese voto.

Me imagino que probablemente puedas construir un perfil mejor usando Silverlight, aunque no estoy seguro de a qué información te da acceso.

Estoy trabajando en un concurso basado en la web que se supone permite a los usuarios anónimos votar, pero queremos evitar que voten más de una vez. Los límites basados ​​en IP pueden pasarse por alto con proxies anónimos, los usuarios pueden borrar las cookies, etc. Es posible utilizar una aplicación de Silverlight, que tendría acceso a un almacenamiento aislado, pero los usuarios aún pueden borrar eso.

No creo que sea posible hacerlo sin un bromista votando él mismo con un bot o algo así. ¿Tengo una idea?


La respuesta corta es no. La respuesta más larga es: pero puedes hacerlo arbitrariamente difícil. Que haría yo:

  • La votación requiere resolver un captcha (para evitar tanto como sea posible el voto automatizado). Para ser aún más efectivo, recomendaría haber preparado múltiples tipos de captchas simples (como "elegir la foto con el gato", "qué es 2 + 2", "escribir la palabra", etc.) y rotarlas tanto por el hora del día y por IP, lo que debería hacer que los sistemas automáticos sean ineficaces (es decir, si alguien que usa IP A crea un bot para resolver el captcha, esto será inútil al día siguiente o si lo distribuye en otras computadoras / usa proxies)
  • Al filtrar por IP, debe tener cuidado al considerar situaciones en las que varios hosts están detrás de una IP pública (AFAIK AOL envía un proxy a todos sus clientes a través de unas pocas direcciones IP, por lo que dicha limitación prohibiría de hecho a los usuarios de AOL). Además, muchos proxies envían encabezados que apuntan a la IP original (como X-Forwarded-For), por lo que también puedes echarle un vistazo.
  • Finalmente, usar algo como FSO (Flash Shared Objects - "Flash cookies") es lo suficientemente oscuro como para que el 99.99% de la gente no lo sepa. Silverlight es aún más oscuro. Para ser aún más astuto, podría comprar otro dominio y establecer el FSO desde ese dominio (por lo tanto, si el usuario está buscando los FSO establecidos por su dominio, no verán ninguno)

Ninguno de estos métodos es 100%, pero es de esperar que combinados te brinden el nivel de seguridad que necesitas. Si desea subir este nivel, debe agregar algún tipo de registro de usuario (que puede ser tan simple como pedir una dirección de correo electrónico válida cuando se produce la votación y enviar un enlace de confirmación a la dirección dada sin contar el votos para los cuales no se hizo clic en el enlace, por lo que no es necesario que sea completo "crear una cuenta con nombre de usuario / contraseña / primer nombre / apellido / etc.").


Las soluciones del lado del cliente se eliminan por las razones que usted indicó: pueden ser manipuladas por el usuario. Las soluciones del lado del servidor, como usted dijo, pueden engañarse y pasar por alto.

Si está dispuesto a aceptar el hecho de que no puede estar 100% seguro de obtener exactamente un voto por persona, existen algunas medidas que puede tomar para reducir el ruido.

  • Use un CAPTCHA en su formulario de envío de votos para dificultar el voto de bots y scripts.
  • Limite el número de votos por dirección IP a uno.
  • Considere exigir el registro para poder votar. (Sé que esto derrota parte de su pregunta original, pero le da un mayor grado de control sobre la votación).

Ese es un buen comienzo.


Mi experiencia personal en el desarrollo y monitoreo de concursos me dice que no, no hay una manera confiable de evitar hacer trampas si permites que los usuarios anónimos voten (o hagan cualquier cosa que les permita participar en el concurso).

podría jugar con IP, introducir retrasos entre una acción y la siguiente, pero es realmente difícil: la mejor manera es introducir un captcha o algo similar, si corresponde en su situación particular.

lo mejor de todo es que no dejes que los usuarios anónimos participen: déjalos "jugar" y tener acceso a una simulación, pero el concurso necesita un inicio de sesión.


No, es la computadora del usuario y ellos tienen el control. Lamentablemente, la única solución es traerlo de vuelta a su pista por así decirlo y requerir autenticación.

Sin embargo, un CAPTCHA ayuda a limitar los votos a los usuarios humanos al menos.

Por supuesto, incluso con la autenticación, no se puede hacer cumplir la votación individual porque luego enseñan a los bots a registrarse ...


No, no puedes, y solo se necesita una persona y un foro dispuesto a cambiar el resultado de una votación en línea .

Debe darse cuenta de los defectos inherentes a un voto en línea y, en lugar de tratar de evitarlos, trate de usarlos para su beneficio.

-Adán