Foros del Web » Programando para Internet » PHP »

comportamiento no deseado de $_GET?

Estas en el tema de comportamiento no deseado de $_GET? en el foro de PHP en Foros del Web. hola, no se a que se deba esto, pero me ha pasado lo siguiente: tengo un script php al cual le paso valores via URL ...
  #1 (permalink)  
Antiguo 06/11/2003, 09:27
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
comportamiento no deseado de $_GET?

hola, no se a que se deba esto, pero me ha pasado lo siguiente:

tengo un script php al cual le paso valores via URL desde otra pagina llamandola con header("location pagina.php?variables").
como en la pagina que invoca a traves de header realizo operaciones de insercion de registros decidi llamar a la pagina directamente desde el navegador (para ver los resultados de los cambios que hacia en el script), luego pense por que no le paso variables (para ver si resultaba o no) y sus respectivos valores y todo funcionó, y eso es lo que me preocupa, pues yo creía que si llamaba la pagina directamente $_GET se daria cuenta que no los enviaba desde otro script, sino directamente desde la barra de direcciones.
A que se debe esto? asi funciona y nada mas, o hay otra explicacion? - como el que se continue la sesion - aun cuando no son variables de sesion?

De antemano gracias.
  #2 (permalink)  
Antiguo 06/11/2003, 09:48
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

$_GET contiene los valores del querystring de una peticion GET. Esa peticion la genera el navegador, incluso cuando haces un header("Location"). Lo que hace el header() es enviar al navegador un mensaje diciendo "ahora debes pedir esta otra URL", y entonces el navegador realiza la peticion GET.

Es decri, $_GET funciona bien.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 06/11/2003, 09:54
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
entonces, al recibir las variables con $_GET no puedo evitar que alguien solicite una pagina de esta forma?

http://misitio/mipagina?variable=valor

y acceda por tanto de una forma "no controlada"?
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #4 (permalink)  
Antiguo 06/11/2003, 10:04
 
Fecha de Ingreso: octubre-2003
Ubicación: Concepción
Mensajes: 84
Antigüedad: 14 años, 2 meses
Puntos: 0
Mi amigo, es es la idea del método GET, enviar variables y sus valores a través de una URL, (observa p. ejem. cuando haces una búsqueda n el google).

Yo creo qu si te interesan los aspectos de seguridad podrías ocupar sesiones para realizar tu trabajo, de esta forma podrías pasar los valores de tus variables mediante las variables de sesión en las páginas que así lo requieran.


Saludos
  #5 (permalink)  
Antiguo 06/11/2003, 10:16
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
si, en realidad, son sólo un par de variables en este caso y puedo, por tanto, soportar (jeje) un par de variables globales y matarlas a la primera oportunidad.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #6 (permalink)  
Antiguo 06/11/2003, 12:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Lo ideal es que propagues tus variabels en sesiones .. así tu sólo redireccionas (como quieras sea via header("location .. ) u otros médios).

Así ganas en seguridad y hasta te ahorras algo de "tasa de trasnferencia mensual" de tu servidor... por qué .. las variables permanecen en tu variables de sesión y no "viajan" entre el servidor y el cliente (que es lo que al fin y al cabo nos cobran los servicios de Hosting por ese concepto: "bytes que van desde el servidor al cliente ..."

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 06/11/2003, 13:22
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Agradezco los consejos.
No tengo el inconveniente de las "tasas de transferencia mensual" pues tenemos nuestro propio servicio.
No se si si lo que voy a decir se aplica a las sesiones o no, pero leyendo sobre "programacion segura" me he encontrado con indicaciones de no usar variables globales, $_SESSION, $_FILES, $POST, $_GET son todos globales, obviamente sería dificil o talvez "imposible" hacer algo con ellas pues estan en el servidor.
De todas formas propago variables a traves de sesiones tomando en cuenta los consejos que se dan en la documentacion de php, pero a veces tengo problemas debido a las caracteristicas de interaccion que quiero darle a las paginas, no problemas de seguridad, sino problemas acerca de cuando matar las variables y cuando no, como no entiendo a la perfeccion la logica de todo esto no puedo diseñar de la forma mas conveniente y asi saber gestionar bien esas variables, pero eso llegará con la experiencia.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #8 (permalink)  
Antiguo 06/11/2003, 13:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Creo que estás confundiendo ..

No sé donde has leido que los arrays superglobales no sean seguros (y más si lo usamos con register_globals a OFF donde se discrimina por completo el método con el cual se enviaron las variables a un script).

Las variabels superglobales ($_SESSION, $_GET, $_POST .. etc) tienen ambito "global" en todo tu script (incluido dentro de llamadas a funciones). Pero nada más ... Si tu recoges una variable $_SESSION['variable'] así .. sólo recoges el valor de esa variable que están definida en una SESSION .. no algo que definas en tu script tipo $variable y que si usas register_globals a ON podría hacerte por ejemplo:

script.php?variable=valor

Con lo cual "alteraría" dicho valor pues lo asumes como "global" si lo rescatas con $variable y no por $_SESSION['variable'] que es el método que te interesa.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 06/11/2003, 13:52
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Tal vez me expresé mal, quise decir que las variables globales no son recomendadas.
Creo que los array superglobales son seguros, pero estarás de acuerdo conmigo, que siendo globales, en algun momento, alguien las volverá vulnerables.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #10 (permalink)  
Antiguo 06/11/2003, 14:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Que sean vulnerables .. pues que te voy a decir .. no hay nada seguro hasta que llega otro que sabe mas que el otro y le "revienta" su seguridad ...

De hecho .. PHP cambió el uso de las variables "externas" (como globales tipo $algo para todo) por el uso de las variables superglobales (OJO, importante: que principalmente discriminan el método usado para enviar esas variables) por una brecha de seguridad con los $archivo_name .. etc (de campos FILE de formularios)

Por el momento, usa register_globals a OFF en tus servidores y programa tus aplicaciones usando los arrays superglobales, es lo más seguro hasta la fecha que puedes usar en PHP.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 06/11/2003, 14:23
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Asi lo entendia tambien, gracias por todo.
Como decía antes, sólo tengo problemas de diseño pues como programo sistemas de informacion, usando un ambiente web, y los usuarios vienen todos migrando desde aplicaciones Visual basic, estoy obligado (por el jefe) a emular la usabilidad de dichas aplicaciones lo cual aun no me es facil (sólo llevo 2 meses con php), es decir, PHP no me da problemas de sintaxis (vengo de C tambien), ni Javascript (pues se Java y el uso de objetos), pero la mezcla de ambos se me hace aun difusa.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
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:15.