Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/02/2007, 20:57
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: es seguro register globals?

Si no las usás, no hay peligro. Si siempre accedés a los valores a través de los superglobales respectivos (_GET, _POST, _COOKIES, _SESSION, etc), no hay diferencia entre tener register_globals activado o no.
De hecho, si sabés manejar y validar correctamente los datos, podés tener un sitio seguro aún cuando hagas un uso extensivo de register_globals.
Pero por seguridad, mejor usar los superglobales

Un ejemplo típico de fallo de seguridad:
Supongamos que tenés un sistema de usuarios: tenés un programa php que valida usuario y contraseña, y cuando el usuario está dentro simplemente añadís
$_SESSION['autorizado'] = 1;

Ahora supongamos que tenés tu página protegida, pero en vez de usar el superglobal _SESSION, simplemente hacés

if ($autorizado == 1)

Creo que no hace falta ver que (suponiendo que la página se llama protegida.php) basta hacer

protegida.php?autorizado=1

para entrar y saltearse la validación, ya que se creará la variable $autorizado a partir de la que se pasa por GET, esté o no la variable de sesión $autorizado definida.

Este es un ejemplo muy burdo, pero a cualquiera se le puede escapar. De ahí que se evite siempre (o debería evitarse siempre) el uso de register_globals.

Pero también podés ver, que más allá de que register_globals esté activado o no, el problema de seguridad del código anterior se soluciona simplemente cambiando $autorizado por $_SESSION['autorizado']

En resumen: no conviene usarlo, más que nada para evitar errores tontos que cualquiera puede cometer. Pero si no lo usás, da lo mismo que esté activado o no.


Saludos.