2009-08-25 15 views
6

Trabajo para una universidad y estoy implementando una aplicación web PHP que necesita tener un comportamiento diferente cuando se visita desde una computadora determinada. El problema que me estoy encontrando es que desde el servidor web, usando $ _SERVER ['REMOTE_ADDR'] y gethostbyaddr(), solo puedo identificar el enrutador por el que está pasando una computadora, y no un nombre de computadora específico.Identificar de forma única una computadora

¿De todos modos puedo configurar esa computadora específica para que se identifique en el servidor para que el servidor sepa cuándo se está accediendo a esa aplicación web desde esa máquina? La computadora ejecuta Firefox en modo kiosco, por lo que se permiten los complementos o los scripts de greasemonkey ...

Respuesta

12

Puede establecer una cookie. Esto será recordado por el cliente y transmitido al servidor como parte de cada solicitud. Más información aquí: http://www.w3schools.com/PHP/php_cookies.asp

+6

Solo asegúrese de comprender que las cookies pueden (muy fácilmente) ser falsificadas ... –

+0

Desafortunadamente, si alguien tiene acceso a la computadora, puede robar la cookie y establecer la misma cookie en otra computadora. – Dmitriy

+6

@Dmitriy Desafortunadamente, no es probable que haya una solución que no se pueda romper mediante el acceso físico directo a la máquina. – ceejayoz

-4

¿No tienes un SessionID? Su sessionID debe ser lo suficientemente único como para identificar una computadora.

+2

No si cierran el navegador. – ceejayoz

+0

Solo estoy de acuerdo con ceejayoz. No es relevante para la pregunta que se hace. –

+0

Es curioso que hayan entendido mal la respuesta. Obviamente, el ID de sesión está en la cookie y las cookies se mantienen incluso si cierra el navegador. – daniel

2

Algunos pensamientos:

  • establecer una cookie duradera. (Como FF está en modo kiosco, debe estar seguro de que los usuarios no lo borren).
  • Haga que ese kiosco utilice una URL diferente (quizás con un parámetro de cadena de consulta).

Lo que no gustaría hacer es trabajar de acuerdo con la dirección MAC de la máquina (que Gibson nos dice que es posible) o similares; demasiado frágil cuando el hardware se arregla, etc.

4

Se podría establecer una cookie, o, alternativamente, podría modificar el encabezado de agente de usuario que la instalación de Firefox está usando para algo distintivo.

cambiar la cadena de agente de usuario, simplemente introduzca about: config como una dirección en la barra de direcciones de Firefox, la ubicación donde normalmente se introduce una URL (enlace). Recomiendo conservar el valor original, que puede obtener cuando ingresa: en la barra de direcciones .

Ahora presione el botón derecho del mouse para obtener el menú contextual y seleccionar "Cadena" de la entrada de menú "Nuevo". Ingrese el nombre de preferencia "general.useragent.override", sin las comillas. A continuación, ingrese el nuevo valor de agente de usuario que desea que utilice Mozilla Firefox . Agregué mi nombre y un enlace al mi sitio web al valor original. Usted también puede elegir uno de la lista de cadenas de agente de usuario .Compruebe el nuevo valor ingresando about: en la barra de direcciones .

Puede recuperar esta cadena de User-Agent de $_SERVER['HTTP_USER_AGENT'] en php.

0

Estoy seguro de que obtuvo una respuesta muy buena, pero si está buscando una solución que identifique de forma única a la COMPUTADORA en lugar de al NAVEGADOR, busque en COOKIES FLASH a.k. un FLASH COMPARTIÓ OBJETOS.

tesis son más potentes y se puede utilizar para almacenar datos de hasta 100 KB y sigue siendo el mismo en todos los navegadores que tiene flash, por lo que es mejor solución para la identificación exclusiva de un usuario

1

Por qué no implementar un sistema de autenticación y colocar aquellos usuarios que necesitan la funcionalidad especial en un grupo especial?

0

Pruebe esto.

$something=$_SERVER['HTTP_USER_AGENT']; 

para identificar unívocamente verificación de usuario $something coincide con el suyo propio. (Que está en su código PHP). si es así, proceda con el acceso.

Cuestiones relacionadas