Foros del Web » Programando para Internet » PHP »

Absurdo problema de autenticación con IExplorer

Estas en el tema de Absurdo problema de autenticación con IExplorer en el foro de PHP en Foros del Web. Para asegurarme de que el usuario que quiere entrar en una página de administración es el administrador he hecho el siguiente código: <? include ("../include/mysql.inc"); ...
  #1 (permalink)  
Antiguo 05/01/2005, 06:28
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 147
Antigüedad: 19 años, 5 meses
Puntos: 1
Absurdo problema de autenticación con IExplorer

Para asegurarme de que el usuario que quiere entrar en una página de administración es el administrador he hecho el siguiente código:

<?
include ("../include/mysql.inc");
$referente=$www_root.'procesa_index.php';
$referente2=$www_root.'admin/autorizar.php';

if($HTTP_SERVER_VARS['HTTP_REFERER']==$referente OR $HTTP_SERVER_VARS['HTTP_REFERER']==$referente2 ){
echo "";
}else{
echo "<H3><center><font color='red'>PARA ENTRAR EN ESTA PÁGINA TIENES QUE HACER LOGIN PRIMERO</font></center></H3><BR>";
echo '<h4><center>IR A LA <a href="../index.php">PÁGINA DE LOGIN</a></center></h4>';
exit;
}
?>

Bueno, pues curiosamente funciona a la perfección en Mozilla pero no funciona en IExplorer . He probado a poner en lugar de $HTTP_SERVER_VARS['HTTP_REFERER'] su equivalente $_SERVER['HTTP_REFERER'] pero no da resultado tampoco. He probado a averigüar el valor de esa variable, y en Mozilla me da la correcta, pero en Explorer no tiene ningún valor. Ya no se me ocurre qué más puedo mirar. Necesito una ayuda, por favor.

Gracias anticipadas.
  #2 (permalink)  
Antiguo 05/01/2005, 06:51
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

¿Es una ventana popup o un link javascript? IE no pasa el referer cuando usas javascript para llegar a la pagina.

De todas formas, el referer no es obligatorio mandarlo. Es mas, firewalls, proxies y otros intermediarios pueden quitarlos para evitar dar informacion. Por eso no debes fijarte en el referer. Ademas, cualquiera con un minimo de conocimiento puede hacer un script que falsee el referer.

Lo mejor que puedes hacer es usar sesiones, usando una especie de "huella". En donde compruebas los referers tendrias que comprobar la existencia y validez de la "huella".

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 05/01/2005, 07:30
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 147
Antigüedad: 19 años, 5 meses
Puntos: 1
Muchas gracias, efectivamente el problema estaba en que la entrada en esa página es a través de un javascript. La idea es la siguiente: en la página de login, si el usuario y la contraseña corresponden al administrador, entonces te redirige a la página de administración:

if($admin_user==$v1 ){
if($admin_pass==$v2){
?>
<script language="JavaScript">
window.self.location="admin/index.php";
</script>
<?
exit();
}
}

Y la autentificación del primer mensaje tiene como objeto comprobar que vienes de la página de login y no que quieres entrar directamente por la cara. La verdad es que no sé como hacerlo de otra forma, ya que las sesiones creo que no me valen, puesto que cuando un usuario pretende darse de alta, el sistema manda un correo al administrador, cuyo correo contiene un link a la página de administración.

De momento me conformaría con saber cómo redirigir a la página de administración sin usar javascript ¿Alguna idea?
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 13:43.