2010-11-03 15 views
20

¿Cuál es la mejor forma de generar una "huella digital" de la exclusividad del usuario en PHP?Formas de crear una huella digital de usuario única en PHP

Por ejemplo:

  1. que podría utilizar la dirección IP de un usuario como la 'huella digital', sin embargo, hay podría haber múltiples otros usuarios en la misma IP
  2. pude utilizar IP del usuario + agente de usuario como la 'huella digital', sin embargo, un único usuario podría simplemente intercambiar desde Safari a Firefox y otra vez ser visto como ser único

Lo ideal es que la huella digital marque la 'máquina' en lugar del navegador o 'ip', pero no puedo pensar en cómo se puede lograr.

Abierto a ideas/sugerencias de cómo identifica de manera única a sus usuarios, y qué ventajas/desventajas tiene su método.

+2

vieja pregunta, pero esto: 'MD5 (implosión ('', $ _ SERVER));' – Shea

+1

@Shea comentario útil, pero las huellas dactilares no cambian (metafóricamente hablando) y no va a haber variaciones en $ _SERVER no relacionadas con el usuario http://us1.php.net/reserved.variables.server –

+1

@Shea No utilizaría el truco que sugirió tal como está, ya que la huella dactilar cambiaría en cada página web visitada. Pero tal vez se puede mejorar. – Calimero

Respuesta

12

Este sitio cubre casi toda la información que puede usar para distinguir individuos a través de un navegador.

https://panopticlick.eff.org/

JavaScript, Java y Flash ayudan mucho.

+0

wow, gran cosa - pero: esto ya no identificará al usuario, si cambia el navegador, instala o desinstala algún complemento, etc. ... si lo entiendo bien. – oezi

+0

@oezi Es cierto, usted debe ser conocedor sobre qué datos utiliza y cómo. – JAL

+0

Gracias Alex, eso fue realmente útil. Aunque estoy seguro de que no será perfecto, mi idea final para imprimir con la "máquina" es hacer un hash de [resolución de pantalla] [lista ordenada alfabéticamente de fuentes] [IP]. –

10

manera más fácil y mejor: use phps session-management - a cada cliente se le proporciona una identificación, se almacena en una cookie (si está habilitada) o se le asigna una variable en cada enlace y formulario. (Alternativamente, puede establecer una cookie por su cuenta). pero: esto solo "huellas digitales" del navegador: si el usuario cambia su navegador, elimina sus cookies o lo que sea, ya no podrá identificarlo.

identificar a cada cliente por ip suele ser una mala idea y no funcionará. los clientes que usan el mismo enrutador tendrán las mismas IP: los clientes conectados a través de un grupo de servidores proxy podrían tener otra ip con cada carga de página.

si necesita una solución que no puede ser manipulada por el cliente de una manera fácil, intente hacer una combinación de lo siguiente, utilizando todos los que sean compatibles con el navegador del cliente y compárelos en cada página de carga:

  • cookies "normales" HTTP
  • objetos locales compartidos (flash cookies)
  • galletas Almacenamiento en valores RGB de, PNG caché de fuerza generadas automáticamente utilizando la etiqueta HTML5 Canvas para leer píxeles (cookies) de vuelta
  • Almacenamiento de cookies y lectura del historial web
  • El almacenamiento de cookies en ETags HTTP almacenamiento
  • Internet Explorer userData
  • HTML5 Almacenaje de la sesión
  • HTML5 Almacenamiento local
  • HTML5 Global Storage
  • HTML5 de almacenamiento de base de datos a través de SQLite

hay una solución llamado evercookie que implementa todo esto

+1

Has vinculado a la traducción alemana del manual de PHP ... Aquí está la misma página en inglés: http://www.php.net/manual/en/book.session.php - Además, usar Evercookie, o cualquier otra forma de almacenar datos en el cliente con el propósito explícito de hacer que sea difícil de eliminar es probable que sea ilegal en la mayoría países. –

3

Lograr el 100% de fiabilidad no está garantizada, pero la combinación de algunos de los métodos más comunes que puede dar resultados significativos

  • Los usuarios generalmente no cambiar los exploradores. La sobrecomplicación en su algoritmo solo para alcanzar la perfección de la ingeniería no justifica el esfuerzo.
  • Sin duda, usted pertenece a los 100 mejores sitios web si puede esperar que varios usuarios de la misma IP. No lo tomes como algo personal, pero no eres tan popular.

Tome la ruta más simple posible que podría funcionar y ajuste con el tiempo si lo considera necesario.

+9

estoy totalmente en desacuerdo con su segundo punto: según el tipo de sitio que tenga, obtendrá múltiples usuarios con la misma dirección IP muy rápido. digamos que su sitio es un juego de navegador: todos los escolares se cuentan, los amigos juegan juntos, y en la clase de informática, donde tienen internet, todos juegan a este juego desde la red de escuelas (lo que significa: el mismo IP, pero el el desarrollador debe averiguar si es la misma computadora para saber que no es una cuenta múltiple fraudulenta) – oezi

+0

@oezi Este tipo de navegador se lleva bien con las ID de sesión. – pestaa

+1

de hecho, solo quería dar un ejemplo de por qué no puede confiar en la dirección IP incluso en sitios pequeños. – oezi

3

Hay algo más que tener en cuenta, la dirección IP pública de un usuario es algo que también puede cambiar en cada carga de página.
Existen múltiples organizaciones que cambian las IP públicas en los enrutadores para equilibrar el tráfico.

0

Tengo tres computadoras diferentes, varios dispositivos de mano, y muchos de ellos tienen diferentes navegadores instalados. Utilizo todo esto indistintamente en casa llevándolos conmigo a otros lugares, básicamente en varias direcciones IP. Lo que estoy tratando de señalar es que las huellas dactilares de un navegador o una máquina para ese caso nunca serán infalibles si su objetivo es bloquear a una persona.

Te recomiendo que tomes un enfoque diferente. Juzgue basado en la información no concluyente que tiene disponible que sugiere la identidad de su usuario prohibido (misma IP o mismo agente de usuario si es poco común o algunos de los métodos de huellas dactilares del navegador de JavaScript como fuentes disponibles, complementos disponibles, no estándar tamaño de la ventana, etc.) y requieren de esos visitantes sospechosos alguna forma superior de verificación de identidad, como oauth con Facebook, Google+ o Twitter. Luego puede ver si esa cuenta de medios sociales es genuina o creada solo para eludir. También hay API de verificación de teléfono en caso de que su base de usuarios no sea conocedora de los medios sociales y de cuán valioso es para usted que los usuarios no eludan la prohibición.

Cuestiones relacionadas