Foros del Web » Programando para Internet » PHP »

es seguro register globals?

Estas en el tema de es seguro register globals? en el foro de PHP en Foros del Web. Hola, tengo una duda sobre seguridad me han dicho (mas de una vez ¬¬) que trabajar con register globals On te inseguriza tooodo el servidor ...
  #1 (permalink)  
Antiguo 22/02/2007, 20:27
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Pregunta es seguro register globals?

Hola,
tengo una duda sobre seguridad

me han dicho (mas de una vez ¬¬) que trabajar con register globals On te inseguriza tooodo el servidor

pero buscando en el site de php encontre que la directiva en si no es insegura, sino depende de nuestros scripts que se convierta en una amenaza o no.

yo aun sin saber esto siempre programe logins de la manera mas segura posible usando sesiones: session_start(), comprobar las variables de usuario, checkear los datos del login con la base de datos, si no esta loggeado correctamente devolver FALSE, si esta loggeado devolver TRUE, lo cual en teoria no lo afectaria tener register globals On

pero aun me queda la duda si tener register globals On puede ser alguna amenaza mas, y no solo para el script sino para el server =/, si alguien me cuenta agradecido!

saludos!!
  #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.
  #3 (permalink)  
Antiguo 22/02/2007, 21:04
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: es seguro register globals?

bueno muchisimas gracias !!

exitos
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 20:36.