Aplicación de votación en línea. Cómo evitar la votación repetida del mismo usuario

Posible duplicado:
IP únicas en un sistema de votación

Estoy desarrollando una pequeña aplicación web donde necesita un sistema de votación en línea usando php para mi evento universitario. Estaba obteniendo la dirección IP y la almacenaba en la base de datos para evitar que el mismo usuario repitiera las votaciones. Pero luego recordé que mi universidad utiliza un servidor proxy, por lo que obtener una dirección IP es inútil. Traté de acceder y almacenar la dirección Mac del cliente usando JavaScript. Probé algunos ejemplos que encontré en Internet … pero ninguno funcionó. ¿Pueden sugerirme una alternativa a cómo puedo obtener los resultados que quiero?

Cualquier tipo de ayuda sería muy apreciada.

Saludos, Aayush Shrestha Nepal

    Pídales que ingresen sus direcciones de correo electrónico y envíen un enlace a su correo electrónico que les permita votar. El enlace debe incluir algunos hash de sus correos electrónicos y deberá verificar si ya han votado o no.

    Me doy cuenta de que un alumno puede ingresar múltiples direcciones de correo electrónico y votar varias veces, pero ¿cuántos correos electrónicos tiene realmente un alumno? ¿Y cuánto tiempo pasarían haciendo algo así?

    Supongo que no tienes acceso a ningún tipo de sistema de autenticación a través de tu universidad, así que esta es probablemente la mejor manera.

    Editar:

    Otra idea es usar la autenticación de Facebook (ver: http://developers.facebook.com/docs/authentication/ ). El inconveniente es que debes asumir que todos los votantes tienen cuentas de Facebook.

    1. Primero, haga que el usuario registre una dirección de correo electrónico para que pueda usar el sistema de votación asociado posteriormente con esa dirección.

    2. Una vez que tiene una dirección de correo electrónico (que se valida con un enlace de activación enviado a ese correo electrónico), puede recostackr información relacionada con la votación del usuario.

    En realidad, no existe una forma efectiva e independiente de la plataforma para evitar la votación repetida a menos que usted haga cumplir certificados de usuario, etc.

    La única forma 100% hermética de hacer esto sería hacer que los usuarios creen cuentas que requieran cierta información personal única para evitar que un usuario haga múltiples cuentas.

    Lo más cerca que puede llegar sin un sistema de inicio de sesión es la biblioteca Evercookie , que almacena un UUID en una docena de lugares diferentes en el navegador del usuario. Es muy difícil eliminarlos por completo (incluso utilizando un modo de privacidad en el navegador), por lo que si le das un Evercookie a un usuario cuando vota, probablemente puedas encontrar a alguien que haya votado antes.

    Tenga en cuenta que esto detiene la repetición de la votación en el nivel de la máquina, no en el nivel de usuario (una máquina puede incluir múltiples usuarios y un usuario puede tener varias máquinas, lo que podría permitir que los votantes se repitan o bloquear a los votantes elegibles).