php - usa - Implementación de un sistema de votación sin necesidad de registro.
requisitos para votar en estados unidos (9)
Me gustaría implementar un sistema de votación en mi sitio, sin tener que obligarlos a crear una cuenta. En última instancia, estarían votando arriba / abajo un contenido que tiene una ID única.
- Sé que podría almacenar entradas en una tabla con IP / ID, pero ¿qué sucede si hay más de un usuario que proviene de la misma IP?
- ¿Hay una manera de identificar de forma única a los visitantes sin que esté vinculado a su IP externa?
- Si creó un GUID, guárdelo en una cookie en esa máquina, ¿podría recuperarse más tarde en esa misma computadora con la misma IP? ¿Una IP diferente?
Cualquier comentario sobre estas preguntas, o cualquier idea de un mejor enfoque, sería muy apreciado.
El agente de usuario de IP + es mucho más exclusivo que IP; No estoy seguro de si es adecuado para sus propósitos. Si les envía una cookie, esa computadora la devolverá (si están usando el mismo navegador) mientras la cookie permanezca disponible, independientemente de la IP, pero tenga en cuenta que el usuario puede deshacerse de la cookie siempre que lo desee. .
Si está preocupado por el uso de este sistema para evitar el fraude de votos, no creo que no vaya a poder hacer que tengan una cuenta.
En principio, es imposible para usted, mediante una cookie, distinguir entre un visitante que nunca ha visitado y un visitante que ha visitado pero eliminado la cookie. En consecuencia, cualquier solución basada en cookies será vulnerable a un fraude de votos trivial.
Considere abrazar esta realidad en el espíritu de J Henry Lowengard , quien, cuando configuró el sitio de los 100 principales en WFMU a mediados de la década de 1990, siempre que haya un botón en la página "su voto ha sido contado" etiquetado como "Volver y votar a algunos" ¡Más!"
De hecho, vaya allí ahora y vote por (o en contra) de !
Estoy pensando el mismo problema ahora mismo. Mis posibles enfoques serán los siguientes:
(A) puede aceptar votos de aquellas personas que estuvieron en su sitio (utilizando SESIONES) durante al menos 15 minutos (puede ser un tiempo aproximado para que un usuario lea un artículo en un blog / sitio). cuando voten, el temporizador se reiniciará para la próxima votación. De esta manera, no tiene sentido eliminar las cookies para los usuarios.
(B) puede aceptar votos de personas no registradas y tomar su dirección de correo electrónico y enviarles un enlace de verificación a su voto. cuando hacen clic en el enlace de verificación en su casilla de correo electrónico, puede contar el voto. Es como votar por dirección de correo electrónico.
(C) combinación de (A) y (B). De esta manera, puede estar seguro de que enviará enlaces de verificación solo cada 15 minutos a un solo usuario, lo que no será mucho :)
Otra opción sería utilizar la sesión. Le permitiría almacenar el identificador de sesión junto con la IP. Eso te permitiría obtener múltiples IP pero de diferentes sesiones. La única falla a eso sería el posible cambio de navegador. Agregar una cookie para convertirlo en un trío podría ayudar a eliminar las inundaciones.
He hecho esto en el pasado solo con la dirección IP, que parece funcionar a pequeña escala.
Podría identificar a los usuarios basándose en algo más que su IP. Por ejemplo, podría incluir el IP + la información completa del encabezado de la solicitud (como el navegador, los números de versión, las capacidades) y el hash. Eso identificará de manera más o menos única a su usuario (aunque no del 100%, desafortunadamente).
Podría permitirles iniciar sesión usando OpenId , esto les permitiría usar una cuenta existente para votar y no tendrían que crear una nueva cuenta.
Google, Yahoo y otros tienen servicios que le permiten autenticar a los usuarios.
Si no autenticas a los usuarios de alguna manera, el sistema de votación estaría abierto al abuso.
Puedes probar Evercookie o soluciones similares.
Sé que esto es viejo, pero solo vine aquí y tuve una idea ..
¿Qué pasa con algo como https://panopticlick.eff.org ? Otra cosa más que uno podría tirar ...
(Si esto alguna vez se queda fuera de línea: esta es una huella dactilar acumulativa hecha de lo habitual más + Detalles del complemento del navegador + Zona horaria + Tamaño de la pantalla y Profundidad del color + Fuentes del sistema + supercookies)
Sí, podría usar una cookie y establecer la caducidad en un futuro muy lejano; sin embargo, no hay nada que impida que alguien borre su caché y vuelva a votar.
Su mejor opción es usar la cookie y no permitir votos de la misma IP dentro de los 15 minutos de diferencia entre ellos ... sin registro, eso es lo mejor que puede hacer.