Foros del Web » Programando para Internet » PHP »

uso de variables globales

Estas en el tema de uso de variables globales en el foro de PHP en Foros del Web. hola, tengo una duda, en muchas partes e leido que el uso de variables globales es... malo, y que produce agujeros de seguridad, etc... pero ...
  #1 (permalink)  
Antiguo 31/01/2010, 03:09
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
uso de variables globales

hola, tengo una duda, en muchas partes e leido que el uso de variables globales es... malo, y que produce agujeros de seguridad, etc...

pero en estos dias e estado mirando algunos scripts y en todos ellos e visto que aun asi todos ellos utilizan variables globales, lo que me viene a duda que talves existe diferencia entre tner activada la opcion de las variables globales en apache.. a hacer " global $variable "

alguien podria aclararme esa duda porfavor?..
que ocurre si ocupo variables de esa manera?
  #2 (permalink)  
Antiguo 31/01/2010, 08:00
Avatar de zokratez  
Fecha de Ingreso: febrero-2005
Mensajes: 41
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: uso de variables globales

Variables globales son muy malas, realmente... y los códigos que andan dando vuelta que ocupan estas son viejos, o bien de gente inexperta... se refieren a no usar $_POST ['foo'] o $_GET['foo'] sino usar $foo... imaginate si alguien supone el nombre de una variable de tu web y le hace override por get... ?nombre='[sql injection]'... espero que te haya aclarado mejor... si queres una variable que perdure durante toda tu aplicacion se utilizan las sessiones $_SESSION['foo'] = xxx;
  #3 (permalink)  
Antiguo 31/01/2010, 09:50
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 14
Respuesta: uso de variables globales

Hay que evitar configurar las variables como globales por defecto (si no ocurre lo que te han dicho arriba), pero declarar una variable concreta como global de forma consciente, como decías al final de tu mensaje, no tiene por qué ser malo.
  #4 (permalink)  
Antiguo 31/01/2010, 10:55
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
Respuesta: uso de variables globales

Hay que evitar configurar las variables como globales por defecto (si no ocurre lo que te han dicho arriba), pero declarar una variable concreta como global de forma consciente, como decías al final de tu mensaje, no tiene por qué ser malo.

eso!!! pero como no deberia ser malo =/?..
alguien que lo explique mejor ._. ?

los codigos que estaba mirando si son viejos xD...
pero no creo que los creadores de phpBB y Joomla sea gente inexperta @.@
  #5 (permalink)  
Antiguo 31/01/2010, 11:39
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 14
Respuesta: uso de variables globales

Una cosa es que tú digas "global $variable;" porque quieres usar esa misma variable en distintas funciones. Eso no es malo y funciona aunque tengas las global OFF. Lo que cambia al activar las globales es que si la variable local no hace referencia a nada busca en las globales: esto es, aunque tú no hayas configurado $variable como global, si hay una global (como $_GET['variable']) que no sea null tomará esa referencia... Y eso es inseguro, porque pueden darse situaciones que no te habías planteado y que un tercero use las globales como le convenga a él.

Desactivando esto puedes seguir usando variables globales, pero tienes que llamarlas explícitamente ($_GET['variable'], $_POST['variable'], declarar la variable como global en todas las funciones que la usen...). Trabajar con las globales activadas es menos costoso porque tienes que especificar menos cosas, pero queda un código inseguro y más difícil de interpretar por otra persona que vaya a ver el código en el futuro (e incluso para ti si no recuerdas bien lo que hiciste).

global $variable; no está mal. Lo que está mal es que la configuración permita que $variable pueda usarse en todas partes como global sin especificarlo. No sé si me he explicado, pero vamos, es cosa de la configuración, no del código, a no ser que el código para funcionar requiera esa configuración
  #6 (permalink)  
Antiguo 31/01/2010, 11:58
Avatar de zokratez  
Fecha de Ingreso: febrero-2005
Mensajes: 41
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: uso de variables globales

Dicho de una forma medio precaria... cuando los programadores php hablamos de globales, no hablamos de las globals, sino del hecho de no utilizar $_POST o $_GET para capturar estas... y usar $campoPasadoPorForm directamente, que es inseguro... Espero que te hayamo aclarado las dudas.
  #7 (permalink)  
Antiguo 31/01/2010, 19:39
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
Respuesta: uso de variables globales

Gracias ryo ;D! ahora lo comprendo a la perfeccion :)

Etiquetas: globales, variables
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 10:40.