Foros del Web » Programando para Internet » PHP »

un pequeño secretito...

Estas en el tema de un pequeño secretito... en el foro de PHP en Foros del Web. Soy adoptado!! No mentira :) Bueno, voy a compartir una pequeña y traumatica experiencia para que no le pase a ninguno de ustedes. Todos sabemos ...
  #1 (permalink)  
Antiguo 12/05/2003, 14:53
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 2 meses
Puntos: 11
un pequeño secretito...

Soy adoptado!! No mentira :)

Bueno, voy a compartir una pequeña y traumatica experiencia para que no le pase a ninguno de ustedes.

Todos sabemos que cuando un cliente nos pide algo lo hacemos, lo probamos, funciona y por arte de magia cuando lo mostramos deja de funcionar.

Bueno, ese fue mi caso con un sitio que desarrolle. Como Cluster muy bien sabe, utilizar $HTTP_REFERER no es lo mas aconsejable que digamos, pero no porque sea inseguro ni mucho menos, eso no importa, lo que realmente importa es que algunos firewalls lo bloquean! Como por ejemplo el Norton. O sea que, si desarrollas un sitio y por esas casuales tenes un login que chequea de donde viene el visitante ($HTTP_REFERER) y lo compara con el nombre del servidor ($SERVER_NAME), vas muerto, porque esa informacion nunca va a coincidir, y si no coincide el usuario nunca va a poder logearse.

Esto es muy importante si desarrollan un sitio para una empresa. Lo del firewall es algo que nunca se me ocurrio preguntar, pregunte todo menos eso, que dicho sea de paso no lo sabia. Ahora por suerte lo sabemos todos. Este es un problema muy atipico, pero les aseguro que hay que tenerlo muy en cuenta.

Un saludo
tk
  #2 (permalink)  
Antiguo 12/05/2003, 20:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues si, tienes toda la razón Tukzone .. No sólo que no coinciden las variables de servidor HTTP_REFERER y el SERVER_NAME, sinó que algunos proxys/firewalls ni te entregan el HTTP_REFERER ..

(así lo estoy sufriendo yo en mi scripcito "Autentificator" .. pues una parte de la validación la baso en ese dato .. sólo como "optimización" .. para náda es "crítico" e incluso me estoy planteando elminar dicha "comprobación" usando el HTTP_REFERER por la cantidad de problemas que trae ..)

Existe una variable de servidor con la cual podrías obtener la "IP" real .. Pero, depende del proxy/firewall .. podrás obtenera o no. Me refiero a:

HTTP_X_FORWARDED_FOR y HTTP_CLIENT_IP

Código PHP:
function getip() {
if (isset(
$_SERVER)) {
if ( 
$_SERVER[HTTP_X_FORWARDED_FOR] ) {
$realip $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif ( 
$_SERVER["HTTP_CLIENT_IP"] ) {
$realip $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip $_SERVER["REMOTE_ADDR"];
}

} else {
if ( 
getenv'HTTP_X_FORWARDED_FOR' ) ) {
$realip getenv'HTTP_X_FORWARDED_FOR' );
} elseif ( 
getenv'HTTP_CLIENT_IP' ) ) {
$realip getenv'HTTP_CLIENT_IP' );
} else {
$realip getenv'REMOTE_ADDR' );
}
}
return 
$realip;
}

// ejemplo
echo getip(); 
Todo esto sería "empaparse" el protocolo HTTP ..pero como que no estoy para esos trotes yo xDD..

Pruebalo y nos comentas ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 12/05/2003 a las 20:35
  #3 (permalink)  
Antiguo 13/05/2003, 10:12
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 2 meses
Puntos: 11
Gracias por el dato Cluster, ya erradique el HTTP_REFERER de todos mis codigos... para siempre! O mejor dicho, ahora lo valido para ver que se trae entre manos :)

un saludo!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:09.