Foros del Web » Programando para Internet » PHP »

Problemas register_globals (on/off)

Estas en el tema de Problemas register_globals (on/off) en el foro de PHP en Foros del Web. Hola . Tengo una aplicacion en php y me pasa lo siguiente: - COn register_globals = off utilizo una variable $_SERVER['idusuario']=juan la cual atraves de ...
  #1 (permalink)  
Antiguo 27/12/2004, 00:59
 
Fecha de Ingreso: mayo-2004
Mensajes: 15
Antigüedad: 13 años, 7 meses
Puntos: 0
Problemas register_globals (on/off)

Hola .
Tengo una aplicacion en php y me pasa lo siguiente:

- COn register_globals = off utilizo una variable $_SERVER['idusuario']=juan la cual
atraves de url http://midominio/miaplicacion/mipagina.php?_SERVER['idusuario'] =pepe puedo modificar¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡....cuando esto no debria poder ocurrir ¿no?
Sin embargo ...
- Con register_globals = on esto no me pasa

Alguien podria explicarme como para este tipo de variables $_SERVER['var'] podria evitar este mal funcionamiento?
  #2 (permalink)  
Antiguo 27/12/2004, 07:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No entendí bien ..

para que usas $_SERVER? .. eso es un array que contiene ciertas variabels de servidor y cada indice es un valor de este ..

Tu deberías usar $_GET si el dato lo esperas por el URL .. o $_POST si te llega de un formulario (en method POST) .. o si usas sesiones $_SESSION .. o cookies $_COOKIE ..

Realmente deberías poner el código que usas y detallar el URL concreto que usas para "suplantar" alguna variable.

Un saludo,
  #3 (permalink)  
Antiguo 27/12/2004, 11:49
 
Fecha de Ingreso: mayo-2004
Mensajes: 15
Antigüedad: 13 años, 7 meses
Puntos: 0
Problemas register_globals

He probado a usar $_SESSION[REMOTE_USER] por ejemplo que indica que mi usuario esta logado o como te decia $_SERVER[idusuario] y atraves de url
http://midominio/miaplicacion/mipagina.php?_SERVER['idusuario']=pepe o
http://midominio/miaplicacion/mipagina.php?_SESSION[REMOTE_USER]=pepe puedo hacer que tomen el valor que les paso por parametro en la url; ya que cuando en mi script pregunto por $_SESSION[REMOTE_USER] o por $_SERVER[idusuario] toman el valor "pepe" y eso es precisamente lo que quiero evitar por que realmente no es ese su valor.

Gracias por contestar
saludos
  #4 (permalink)  
Antiguo 27/12/2004, 13:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Sigo sin entender tus pruebas ..

REMOTE_USER sólo lo puedes acceder por el array superglobal: $_SERVER .. o en su defecto por $HTTP_SERVER_VARS o de forma global (si usas register_globals a OFF) $REMOTE_USER

Aclara bien eso .. y sobre todo pon el código que usas .. por qué:
1) Tu cambio de register_globals a OFF no se completó con exito (no reiniciastes tu servidor por ejemplo y sigue a ON)
2) No estás usando $_SESSION para recoger el valor de tus variables de sesión .. o no usas session_start() antes .. o estás haciendo alguna asignación anterior a esa variable o similar.

Un saludo,
  #5 (permalink)  
Antiguo 28/12/2004, 03:47
 
Fecha de Ingreso: mayo-2004
Mensajes: 15
Antigüedad: 13 años, 7 meses
Puntos: 0
Cita:
Iniciado por Cluster
Sigo sin entender tus pruebas ..

REMOTE_USER sólo lo puedes acceder por el array superglobal: $_SERVER .. o en su defecto por $HTTP_SERVER_VARS o de forma global (si usas register_globals a OFF) $REMOTE_USER

Aclara bien eso .. y sobre todo pon el código que usas .. por qué:
1) Tu cambio de register_globals a OFF no se completó con exito (no reiniciastes tu servidor por ejemplo y sigue a ON)
2) No estás usando $_SESSION para recoger el valor de tus variables de sesión .. o no usas session_start() antes .. o estás haciendo alguna asignación anterior a esa variable o similar.

Un saludo,
Hola que tal .
Te cuento se que es un poco raro pero haber si consigo explicarme .

Tengo register_globals = Off ya reinicie el servidor
Necesito utilizar alguna de estas variables que me vienen en:
HTTP Headers Information
Nombre Variable : uid

Apache Environment
Nombre Variable : HTTP_UID
Nombre Variable : REMOTE_USER

PHP Variables
Nombre Variable : _SERVER["HTTP_UID"]
Nombre Variable : _SERVER["REMOTE_USER"]

Estas variables no las establezco yo (tampoco utilizo session_start() ) si no que las establece otro programa que se encarga de validar al usuario y una vez esta validado este programa establece todas esas variables comentadas anteriormente.

La parte de codigo que utiliza alguna de estas variables (en concreto estoy utilizando _SERVER["HTTP_UID"]) es:
if (empty($_SERVER["HTTP_UID"]))
{
Si esta variable viene vacia es que no esta logado.
}
else
{
$userid = $_SERVER['HTTP_UID'];
///El usuario esta logado

}
...y lo que pasa es que si me mendan por url el parametro ?_SERVER[HTTP_UID]=pepe ,la cago.....por que coge el valor del parametro de la url.
Espero haberte aclarado mi problema .
Por cierto como podria recuperar estas variables ya que al venir por Http header y Apache Enviroment no se como recogerlas (lo cierto es que al ejecutar la funcion phpinfo() se me muestran el nombre de la variable y su valor):
HTTP Headers Information
Nombre Variable : uid <-----

Apache Environment
Nombre Variable : HTTP_UID <----
Nombre Variable : REMOTE_USER <---

Saludos
Gracias

Última edición por julianac; 28/12/2004 a las 04:10
  #6 (permalink)  
Antiguo 28/12/2004, 06:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues no entiendo por qué si haces ?_SERVER[HTTP_UID]=pepe sucede lo que mencionas ..

Estoy seguro y comprobado que si usas otros arrays superglobales tipo $_POST, $_SESSION .. etc no sucede esa "suplantación" de varaibles por un método que no corresponda.

Las variables del "HTTP header y envioremt" las tomas por el array $_SERVER igualmente o bien por getenv() que viene a ser lo mismo. (como ya lo haces)

Un saludo,
  #7 (permalink)  
Antiguo 28/12/2004, 12:48
 
Fecha de Ingreso: mayo-2004
Mensajes: 15
Antigüedad: 13 años, 7 meses
Puntos: 0
Gracias

Creo que utilire la funciona getenv como me comentas.

Gracias por el interes mostrado.
Saludos
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 07:48.