2010-08-25 11 views
5

Supongamos que está escribiendo una aplicación de encuesta y le gustaría garantizar de alguna manera que los resultados sean seguros desde el punto de vista del usuario. En pocas palabras, sé de qué IP proviene, pero quiero asegurarme de que duerma bien por la noche sabiendo que no sé nada de sus respuestas. No puedo almacenar IP en forma cruda.¿Cómo crear una aplicación de encuesta simple y segura?

sí necesito para garantizar 1 cosa, sin embargo, es que una vez a responder preguntas. Entonces, una vez que su PC ingrese con algunos datos, debo reconocer que su PC ya ha respondido a la encuesta.

¿Alguna sugerencia sobre cómo manejarlo mejor?

Gracias -mac

+0

Gran pregunta: esta es la razón por la que no confío en las "encuestas anónimas" en el trabajo. También considere lo que sucedería si uno fuera a usar un grupo de servidores proxy (improbable). Sospecho que no puedes garantizar ninguno de los dos :) –

+0

Derecha. Boss quiere hacer una encuesta y sinceramente no quiere saber quién dijo qué. Tengo curiosidad, pero oye, dijo el jefe, nadie puede saber ...Cualquier acercamiento que haya experimentado sería bueno – JAM

+6

En realidad tiene dos problemas, tratar los datos de forma segura y convencer a alguien de que está tratando con los datos de forma segura :) –

Respuesta

3

no se puede garantizar ninguna de éstas. Todo lo que puedes hacer es subir el nivel, por lo que es más difícil sortearlo. Si alguien realmente quiere sortear su seguimiento, pueden hacerlo si conocen lo suficiente sobre su sistema. Lo bueno es que la mayoría de la gente no quiere molestarse o no sabe cómo hacerlo.

Puede generar un hash criptográfico y almacenar que en una cookie en el navegador de personas si se quiere evitar problemas de proxy. Muchos sitios web hacen esto para mantener la creación de sesiones para rastrear la autenticación. Esto es algo así como usar un HMAC para generar algo que identifique al navegador con una clave única que no se puede fingir. Si borran su navegador, no podrás rastrearlos.

Uno de hash modo de dirección IP es una manera de mantener su IP de ser seguido, pero siempre la misma IP hashes en el mismo valor para que pueda saber si alguien está haciendo eso. Sin embargo, si van a un café viola de Internet, pueden volver a enviarlo. Utilizarías SHA1, MD5, etc. para eso.

Puede hacer lo mismo con la dirección de correo electrónico y hash it. Para lograr que la gente quiera participar, envíe los resultados a su dirección de correo electrónico en lugar de mostrarlos en el navegador. La gente solo tiene que confiar en que no harás cosas desagradables con su correo electrónico.

Otras ideas podrían ser si usted sabe que desea enviar la encuesta también. Genere un número aleatorio que identifique la respuesta individual. Luego, envíe esos enlaces a las personas por correo electrónico. Luego enviarán debajo de ese número, y usted no rastrea el correo electrónico -> número aleatorio, entonces no puede correlacionar las respuestas con la dirección de correo electrónico. Una vez que se usa un número aleatorio una vez, no permite que lo vuelvan a enviar. Seguimiento de respuestas una vez. Mostrar resultados muchas veces.

Se pueden combinar algunos de estos juntos para tratar de solucionar las deficiencias de la otra.

5

Crear un hash unidireccional de la dirección IP (y cualquier otro atributo de identificación exclusivo), y almacenar el hash con la respuesta. De esta forma, nadie puede buscar la dirección IP para obtener una respuesta, pero puede comparar el hash con las respuestas enviadas previamente para asegurarse de que las personas solo envíen el formulario una vez.

No hay mucho que puede hacer para convencer a alguien de su respetando su privacidad. Simplemente no abuse de la confianza, y la gente lo resolverá.

(Para tener una idea sobre cómo crear un hash en Java ver How can I generate an MD5 hash?)

+0

¡Genial! Esto es similar a cómo Gmail en realidad no almacena nuestras contraseñas, sino hashes en su lugar. Esto resuelve la mitad del problema, por lo que ya me demuestra que estoy equivocado. –

+0

Tendría que ** ** iterar en gran medida el hash (espacio de teclas pequeño ...). Pero incluso entonces, si desea poder verificar el hash en un tiempo factible, el adversario podría elegir una dirección IP y verificar si coincide con el hash o no. Puede reducirlo a un rango menor que 2^32. –

+0

Esta idea tiene dos problemas: 1. Múltiples empleados que comparten la misma computadora. Bloqueará al segundo empleado de completar la encuesta. 2. Un empleado que utiliza varias computadoras para eludir a un empleado, una garantía de encuesta. Pero estoy totalmente de acuerdo con "No hay mucho que pueda hacer para convencer a alguien de que respete su privacidad. Simplemente no abuse de la confianza, y la gente lo resolverá". – emory

Cuestiones relacionadas