¿Hay una manera fiable para evitar el engaño en una página de la web del concurso donde los usuarios anónimos pueden votar?

StackOverflow https://stackoverflow.com/questions/55835

  •  09-06-2019
  •  | 
  •  

Pregunta

Estoy trabajando en una web basada en concurso, que se supone que es para permitir a los usuarios anónimos a votar, pero queremos evitar que voten más de una vez.Basado en IP límites pueden ser anuladas con los proxies anónimos, los usuarios pueden borrar cookies, etc.Es posible utilizar una aplicación de Silverlight, que tendría acceso a almacenamiento aislado, pero los usuarios pueden borrar eso.

Yo no creo que sea posible hacerlo sin algún bromista voto a sí mismo con un bot o algo.¿Tienes una idea?

¿Fue útil?

Solución

La respuesta corta es:no.La respuesta larga es:pero se puede hacer arbitrariamente difícil.Lo que yo haría:

  • La votación se requiere resolver un captcha (para evitar tanto como sea posible automatizado de votación).Para ser aún más eficaz que yo recomendaría tener preparados varios tipos de simple captchas (como "escoge la foto con el gato", "¿qué es 2+2", "en el tipo de palabra", etc) y girar a ambos en el momento del día y de la propiedad intelectual, lo que debería hacer automático de sistemas ineficaces (es decir, si alguien usando UNA IP crea un robot para resolver el captcha, esto se convertirá en inútil el día siguiente o si s/él distribuye a otras computadoras/usa proxies)
  • Cuando el filtrado por IP, usted debe tener cuidado al considerar situaciones donde varios hosts están detrás de una IP pública (AFAIK AOL proxies a todos sus clientes a través de un par de IPs - de modo que tal limitación efectiva de la prohibición de usuarios de AOL).También, muchos proxies enviar a lo largo de los encabezados que apunta a la IP original (como X-Forwarded-For), así que usted puede tomar un vistazo a eso también.
  • Por último, el uso de algo como FSO (Flash Objetos Compartidos - "Flash cookies") es oscuro suficiente para que el 99,99% de la gente no sabe acerca de.Silverlight es aún más oscuro.Para ser aún sneakier, usted podría comprar un dominio de otros y establecer el FSO de ese dominio (por lo tanto, si el usuario está buscando FSO del conjunto por su dominio, no van a ver ninguna)

Ninguno de estos métodos es el 100%, pero esperemos que combinados dan el nivel de seguridad que usted necesita.Si quieres llevar esto a un nivel superior, se necesita añadir algún tipo de registro de usuario (que puede ser tan simple como pedir una dirección de correo electrónico válida cuando la votación se produce y el envío de un enlace de confirmación a la dirección dada y no contar los votos para que el link no estaba clic - por lo que no necesita para ser un completo "crear una cuenta con nombre de usuario / contraseña / firs nombre / apellido / etc").

Otros consejos

No, no se puede, y sólo se necesita una persona y dispuesta foro cambiar el resultado de una votación en línea.

Usted tiene que darse cuenta de los defectos inherentes de una votación en línea y en lugar de tratar de conseguir alrededor de ellos intentan utilizar a su ventaja.

-Adam

Que sin duda puede hacer que sea difícil.

¿Qué acerca de la construcción de un perfil de usuario con cosas tales como la dirección ip, el navegador de agente de usuario, nombre de equipo, y cualquier otra información que usted puede obtener.

Almacenar el perfil de cada usuario, a continuación, si usted recibe un perfil que es lo suficientemente similar a uno que ya están en la base de datos (usted tendrá que ajustar que) puede deshacerse de ese voto.

Me imagino que usted probablemente puede construir un mejor perfil de uso de silverlight, aunque no estoy seguro de la información que le da acceso.

Soluciones del lado del cliente son las razones por las que se enumeran: pueden ser manipuladas por el usuario.Soluciones del lado del servidor, como se dijo, pueden ser engañados por alto.

Si usted está dispuesto a aceptar el hecho de que realmente no se puede estar 100% seguro de que usted está recibiendo exactamente un voto por persona, entonces hay algunas medidas que usted puede tomar para reducir el ruido.

  • El uso de un CAPTCHA en su voto-formulario de presentación para hacer que sea más difícil para los robots y las secuencias de comandos para votar.
  • Limitar el número de votos por dirección IP a uno.
  • Considerar la posibilidad de exigir la inscripción para votar.(Sé que esto derrotas parte de tu pregunta original, sino que le da un mayor grado de control sobre la votación.)

Ese es un buen comienzo.

mi experiencia personal en el concurso de desarrollo y el seguimiento me dice que no, que no hay una manera segura para evitar la trampa si que los usuarios anónimos que votar (o hacer cualquier cosa que les permite participar en el concurso).

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

lo mejor de todo, no permitir que los usuarios anónimos participar:dejar que la "play" y el acceso a una simulación, pero el concurso de las necesidades de un inicio de sesión.

Nope, es el ordenador del usuario y que están en control.Lamentablemente, la única solución es llevarlo de vuelta en su cancha por así decirlo y que requieren autenticación.

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

Por supuesto, incluso con la autenticación no se puede exigir sola votación porque entonces van a enseñar a los robots a registrarse...

Estoy de acuerdo que la respuesta corta es no...aunque si se mira mis recientes respuesta aquí: Cómo, de forma anónima, identificar a un usuario y almacenar esa información ciertamente, usted puede conseguir en un plazo de un 6 por ciento de margen de error.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top