PHP - CONSULTA SOBRE PHP

 
Vista:

CONSULTA SOBRE PHP

Publicado por Marta (1 intervención) el 18/10/2006 01:06:53
Hola!!

Bien estoy terminando una mini aplicación web para una practica de escuela, pero en el último momento he visto que puedo tener un pequeño bug de seguridad.

Después de enviar un formulario a la pagina procesar.php devuelvo un HEADER:

header("Location: mapas.php?mat=0&pvar=$ahora1&errmsg=Proceso finalizado correctamente.");

El tema es que pvar almacena una dirección ftp (ftp://USUARIO:CONTRASEÑ[email protected]) y por lo tanto el header me genera esto:

http://localhost/mapas.php?mat=0&ftp://USUARIO:CONTRASEÑ[email protected]&Proceso finalizado correctamente

El problema es que me muestra lo que hay dentro del $ahora1 publicamente y aunque en mapas.php lo trato al momento (lo guardo en una BD) y no se ve ni una milesima de segundo..mi sorpresa llega al revisar el HISTORIAL de internet exploer y ver que me guarda "http://localhost/mapas.phpmat=0&ftp://USUARIO:CONTRASEÑ[email protected]&Proceso finalizado correctamente" TODO ESTO como una pagina con la direccion FTP donde hay usuario y contrasenya del mismo ftp.

Alguien sabe como puedo hacer para que pvar (que tendra dentro $ahora1 con la direccion del ftp) me llegue escondida a mapas.php??? Tal vez creando una variable global??

La solucion sería que cuando el usuario le diese al boton DESCONEXION de la "web" se borrase el historial de INTERNET EXPLORER , pero eso no se como hacerlo...

a ver si me podeis echar una mano..

GRACIAS A TODOS/AS!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:CONSULTA SOBRE PHP

Publicado por Agustin Mende (12 intervenciones) el 18/10/2006 05:49:32
Bueno, primero que nada podrias empezar enviando las variables por POST y no por GET porque GET lo que hace es justamente eso, enviar los valores por la url, y para esto no tienes remedio.

O lo mandas por POST o se lo asginas a una variable de session y tomas dicho valor en el script de destino... se entiende?

script que envia el form

<?php
session_start();

$_SESSION["pvar"] = "el valor que quieras";

?>

script destino

<?php
session_start();

$tu_variable_o_lo_que_se_te_ocurra = $_SESSION["pvar"];

?>

Claro que esto esta super incompleto... solo te paso la idea de como armarlo... pero vete olvidando de GET!!!!

Agustin...

Porfame cuentas como te fue.. :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONSULTA SOBRE PHP

Publicado por Wonder (52 intervenciones) el 18/10/2006 15:50:23
Creo que agustin tiene razon, hay muchas razones para irse olvidando del GET y mas en este tipo de ocasiones donde se pasan datos que necesiten matenerse escondidos, por que tu dices que cuando lo haces no se ve en la direccion y despues lo ves en el historial, pero eso puede estar pasando por que lo estas haciendo localmente imaginate cuando este online, las conexiones ftp se demoran, y entonces si se va a ver la contraseña y toda la informacion asi y todo logres borrar el historial, que creo debe algun codigo javascript para eso,

saludos,

Wonder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONSULTA SOBRE PHP

Publicado por Agustin mende (12 intervenciones) el 19/10/2006 01:42:40
mmm.. estas confundida... el header es, haciendolo simple, para redireccionar a otra pagina, lo que tu estas haciendo es mandar valores por la url ?variable=valor , por lo que veo no estas utilizando un formulario al cual le asignas que envie por GET, simplemete estas mandando los valores por ahi, lo que tienes que hacer es crear un formulario o lo que sea, e indicarle que pase los datos por el post, de esta manera los puedes tomar con post en el archivo destino...

<form action="destino.php" method="post">
<fieldset>

aca tus variables/valores

<button type="submit">

</fieldset>
</form>

de esta manera no necesitas usar tu header, ya que el destino a donde quieres que vaya lo pones en action=""

en el otro archivo tomas los datos de la siguiente manera. $_POST["dato"];
se lo asignas a una variable o lo que mas te guste...

bueno.. mas a lla de toda esta explicacion bastante confusa seria bueno que expliques que es lo que hace tu script y como lo has resuelto.. porque estamos "Totalmente en el aire" te estamos tratando de dar soluciones a un problema que desconocemos..

Agustin
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar