Foros del Web » Programando para Internet » PHP »

Controlar si cambian variables de la URL

Estas en el tema de Controlar si cambian variables de la URL en el foro de PHP en Foros del Web. Buenas tardes, al grano, me gustaría saber como puedo controlar que los usuarios de la web cambien el valor de una variable de la URL ...
  #1 (permalink)  
Antiguo 02/12/2007, 14:32
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años, 7 meses
Puntos: 28
Controlar si cambian variables de la URL

Buenas tardes,

al grano, me gustaría saber como puedo controlar que los usuarios de la web cambien el valor de una variable de la URL manualmente. Por ejemplo:

un usuario clicka en un link del tipo http://www.dominio.com/index.php?id=5
esto hace una consulta basandose en el id 5. Lo que quiero controlar es que el usuario no pueda poner directamente id=6 en la barra de direcciones y le saque los resultados de la consulta con el id 6.

Bueno no se si me he explicado del todo bien pero creo que tampoco tiene mucho lio. Este tipo de control lo he visto hacer en webs con ASP por lo que supongo que en servidores que corren PHP tambien se podra hacer...


Gracias de antemano, saludos!
  #2 (permalink)  
Antiguo 02/12/2007, 14:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 11 meses
Puntos: 0
Sonrisa Re: Controlar si cambian variables de la URL

Tienes que añadirle a la pagina, el siguiente codigo al principio del todo:

Código PHP:
defined'_VALID_MOS' ) or die( 'Restricted access' ); 
Lo de 'Restricted access' puedes poner el mensaje que quieras.
  #3 (permalink)  
Antiguo 02/12/2007, 14:39
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: Controlar si cambian variables de la URL

Los usuarios siempre pueden modificar las variables que se pasan por url, lo que tienes que hacer es comprobarlas al recibirlas.
  #4 (permalink)  
Antiguo 02/12/2007, 14:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Controlar si cambian variables de la URL

Correcto, me equivoque en mi post, eso era para que no se pudiese acceder de ninguna manera
  #5 (permalink)  
Antiguo 02/12/2007, 15:43
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años, 7 meses
Puntos: 28
Re: Controlar si cambian variables de la URL

y como voy a comprobar si la variable que viene por URL es modificada directamente en la barra de direcciones o proviene de un link de la propia pagina?

gracias de nuevo
  #6 (permalink)  
Antiguo 02/12/2007, 15:57
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: Controlar si cambian variables de la URL

Buena pregunta. Si tu le das a alguien un boli azul, y luego te lo devuelve... cómo compruebas que no lo ha modificado?? Comprobando que es un boli, y no un lápiz, comprobando que es azul y no verde, pero si te da un boli azul igual, cómo compruebas que es el mismo?? Pues marcándolo antes o algo así. Pero si le das un 4, y te devuelve un 4, qué haces?? Lo único que puedes hacer es comprobar que es un número:

Código PHP:
// es numérico
if (!is_numeric($id))
{
  die(
"ID no válido")

Lo único que se me ocurre para que sólo pueda ver lo que tu le muestras, es guardardarle lo que le muestras y comprobando si lo que quiere ver se lo has mostrado, por sessiones mismo.
  #7 (permalink)  
Antiguo 02/12/2007, 16:21
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años, 7 meses
Puntos: 28
Re: Controlar si cambian variables de la URL

Gracias Sanubrio por tus respuestas. Visto que intentas ayudarme te mostrare que es lo que busco con mas precision.

Yo envio un correo a alguien donde por ejemplo aparecen 3 enlaces a paginas que hay en mi servidor, por ejemplo:

http://www.dominio.com/enlace1.php
http://www.dominio.com/enlace2.php
http://www.dominio.com/enlace3.php

en el mismo correo hay 2 campos hidden donde uno contiene un identificador (id) y otro la direccion de correo del destinatario que ha recibido dicho e-mail.

Bien, lo que yo quiero conseguir es que cada vez ke ese destinatario haga click en uno de esos enlaces, a traves de una pagina intermedia yo recibo el ID, el link pulsado y el e-mail pudiendo almacenar asi en mi base de datos que enlaces se han clickado desde cada e-mail o ID.

Pero claro si llega un listillo y se pone a cambiar el ID del campo hidden a mano en el codigo html, podria enviarme a mi base de datos información erronea y es eso lo que quiero evitar.


Gracias de nuevo, saludos!
  #8 (permalink)  
Antiguo 02/12/2007, 16:46
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: Controlar si cambian variables de la URL

Nose si te he entendido del todo.

Puedes ponerle un hash a cada usuario, o si quieres tener más seguridad un hash a cada email que mandas.

Código PHP:
$hash substr(md5($usuario_id.$usuario_nombre.time().mt_rand(100000,999999)), 010
Luego en los enlaces de los emails lo pones y así sabes cuándo ese usuario viene a ese enlace:

Código PHP:
echo '<a href="http://www.dominio.com/enlace.php?hash='.$hash.'">Enlace</a>'
Cuando alguien llegue a la página, compruebas si tiene hash y lo guardas mediante sessiones:

Código PHP:
session_start();

if (
issset($_GET['hash'] && EXISTE_EL_HASH))
{
  
$_SESSION['hash'] = $_GET['hash'];

Y luego puedes guardar todas las páginas que visite con ese hash.

Código PHP:
if ($_SESSION['hash'])
{
  
GUARDAR_PAGINA

  #9 (permalink)  
Antiguo 02/12/2007, 16:52
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
De acuerdo Re: Controlar si cambian variables de la URL

Hola pr0, cómo vas??

Mira para ese tipo de cosas se usa, encriptar el contenido de la variable que pasas con algún método nativo de php o hecho por ti, en los FAQ's de php está ya el código. Le puedes cambiar lo que consideres.

Esa es la única manera(al menos que yo conozco), para asegurarte que no te cambien el id y que al hacerlo no se muestre nada o arroje error.

Saludos y espero te sirva!!!!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #10 (permalink)  
Antiguo 02/12/2007, 17:01
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años, 7 meses
Puntos: 28
Re: Controlar si cambian variables de la URL

muchas gracias a los 2, vuestras respuestas me han servido mucho de ayuda. Las aplicare a mi caso a ver que consigo. De nuevo gracias.
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 22:01.