Discrenir cual pc esta entrando a una aplicación

Desarrollo una aplicacion web que funcionara en un servidor local.
Deseamos registrar en una BD, por motivos de seguridad, algun dato que
identifique a la máquina que entra y usa la aplicacion.
Sabemos que existe la manera de obtener el numero ip con lineas como:

request.remote_addr
request.env[‘REMOTE_ADDR’]
request.remote_ip

Pero, por nuestra experiencia desarrollando con otros lenguajes como php
sabemos que no siempre este numero ip es unico de una sola máquina
Ya que cuando una red esta bajo un proxy, desde afuera es visto con la
ip del proxy de manera que no es posible diferenciar cada máquina.

Aunque esta aplicacion funcionara en un servidor local con maquinas
conectadas en una LAN, en ocasionaes debera ser manipulada desde afuera
por agentes de soporte técnico que podrian estar conectados a intenet
atravez de un proxy. Por lo que se necesita que el numero ip(u otro tipo
de identificador) obtenido, corresponda a una sola máquina a fin de que
quede registrado en el sistema.

Quisiera que me dieran alguna sujerencia para poder discernir o
identificar con las herramientas que proporciona Rails, cual es la
máquina que esta entrando a mi aplicación Rails.

Hola,

Deseamos registrar en una BD, por motivos de seguridad, algun dato que
identifique a la máquina que entra y usa la aplicacion.

En una aplicación web no tienes muchas opciones. Hay que tener claro que
una aplicación web viene determinada por las
características/limitaciones del protocolo HTTP.

Entonces… en una petición HTTP hay que tener claro que lo que te llega
es lo que la máquina cliente decide que te va a enviar, ni más ni menos.
Y esto que la máquina cliente te manda, viene en tres sitios: Cabeceras,
Cookies, Parámetros.

En la primera opción, cabeceras estándar, lo más parecido a un
identificador es la IP. Si la IP no te vale, hay que ver qué más podemos
sacar de los otros sitios. De una Cookie puedes sacar cualquier cosa que
tú previamente le hayas mandado, así que si esa aproximación te vale,
puedes usar el mismo identificador de session de la cookie de session de
rails.

Si no te vale la IP, ni te vale una cookie (básicamente porque no te
fíes del uso de la cookie que hagan los usuarios de tu aplicación, que
en tu caso al ser una aplicación al parecer de uso interno no debería
pasar mucho), una aproximación factible es poner un login en la
aplicación, y entonces guardar la información del usuario que accede, y
no la máquina concreta. Esto debería ser suficiente para casi cualquier
necesidad, a no ser que lo que quieras sea limitar el uso de la
aplicación por un tema de licencias.

Si estás en el caso de poner licencias a tu aplicación, o algún otro uso
que requiera de verdad de verdad identificar a la máquina, te refiero al
mail que contesté ayer a uno de los esparza preguntando sobre la Mac
Address… o lo intentas con un applet, o con un activeX. También te
quedaría la opción de utilizar un certificado digital, aunque como los
certificados son exportables, nadie te impide usar un certificado desde
diferentes sitios.

Esta pregunta realmente no es que sea de Rails en sí misma, sino de
desarrollo web en general. Supongo que encontrarás diferentes enfoques y
discusiones en google buscando por sistemas de encuestas o de
votaciones, que tienen exactamente el mismo problema (identificar
inequivocamente quién ha votado ya para no dejarle hacerlo más veces).

saludos,

javier ramírez

p.s. sería interesante que no enviéis el mismo mail exacto dos personas
diferentes a la lista, más que nada porque sólo crean ruido y es
probable que las conversaciones se crucen y acaben perdiendo eficiencia


javier ramírez

…i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
…you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez