Foros del Web » Programando para Internet » PHP »

encriptar url de tipo link.php?id=1

Estas en el tema de encriptar url de tipo link.php?id=1 en el foro de PHP en Foros del Web. hola, quisiera saber si existe una manera de encriptar las urls de tipo link.php?id=1 para que sea algo como link.php?id=22sadf24234&%ass123, me explico?, lo que quiero ...
  #1 (permalink)  
Antiguo 12/08/2008, 17:42
Avatar de alonsoandres  
Fecha de Ingreso: enero-2004
Ubicación: Matamoros, Tamaulipas
Mensajes: 305
Antigüedad: 20 años, 3 meses
Puntos: 3
Pregunta encriptar url de tipo link.php?id=1

hola, quisiera saber si existe una manera de encriptar las urls de tipo link.php?id=1 para que sea algo como link.php?id=22sadf24234&%ass123, me explico?, lo que quiero es que el usuario no sea capaz de poner link.php?id=1 manualmente para evitar sql injection.

Hay alguna manera? Gracias.
  #2 (permalink)  
Antiguo 12/08/2008, 17:55
Avatar de julianmejio  
Fecha de Ingreso: agosto-2005
Ubicación: Medellín, Antioquia
Mensajes: 88
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: encriptar url de tipo link.php?id=1

Aquí tienes lo que buscas, sin embargo es posible que se pueda hacer SQL Injection. Te recomiendo que además de eso, apliques un mysql_real_escape_string() al parámetro para la consulta, que sería la id:

http://my2bits.wordpress.com/2007/09...on-md5-en-php/
  #3 (permalink)  
Antiguo 12/08/2008, 18:06
Avatar de alonsoandres  
Fecha de Ingreso: enero-2004
Ubicación: Matamoros, Tamaulipas
Mensajes: 305
Antigüedad: 20 años, 3 meses
Puntos: 3
Respuesta: encriptar url de tipo link.php?id=1

muchisimas gracias, eso es lo que buscaba. ahora, para que sirve lo de mysql_real_escape_string() que dices que utilice?
  #4 (permalink)  
Antiguo 12/08/2008, 18:09
Avatar de julianmejio  
Fecha de Ingreso: agosto-2005
Ubicación: Medellín, Antioquia
Mensajes: 88
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: encriptar url de tipo link.php?id=1

Aquí está la documentación de la función que te di:

http://www.php.net/mysql_real_escape_string

Lo que hace es escapar todos los posibles caracteres que rompan la sentencia original, evitando que se ejecuten más de dos sentencias, posible comprotamiento de un SQL Injection. Es fácil de usar, sólo debes escapar el parámetro antes de ingresarlo a la función. Lo único es que debes tener una conexión activa, porque esta función llama directamente a la función desde el API de MySQL.
  #5 (permalink)  
Antiguo 12/08/2008, 21:21
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Respuesta: encriptar url de tipo link.php?id=1

usa base 64 encode y base 64 decode para cifrar y descifrar..

Amigo un Dato Encriptar no existe en el diccionario se dice Cifrar. y Descifrar.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #6 (permalink)  
Antiguo 12/08/2008, 23:57
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: encriptar url de tipo link.php?id=1

A todo eso, para evitar cualquier inyección, siendo id un número entero, es tan facil como esto:

$id = (int) $_GET['id'];

Lo que hace es convertirlo a un tipo entero. En caso de que no sea capaz, por ejemplo porque en realidad es texto, lo convierte en un 0, con lo que no problemo. Aplicar cualquier otra cosa, en este caso, está de más.
  #7 (permalink)  
Antiguo 13/08/2008, 07:35
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: encriptar url de tipo link.php?id=1

Cita:
Iniciado por eddwinpaz Ver Mensaje
usa base 64 encode y base 64 decode para cifrar y descifrar..

Amigo un Dato Encriptar no existe en el diccionario se dice Cifrar. y Descifrar.
Wow... tiene razón. No existe Encriptar... me siento un ingnorante
  #8 (permalink)  
Antiguo 13/08/2008, 10:48
Avatar de alonsoandres  
Fecha de Ingreso: enero-2004
Ubicación: Matamoros, Tamaulipas
Mensajes: 305
Antigüedad: 20 años, 3 meses
Puntos: 3
Respuesta: encriptar url de tipo link.php?id=1

Cita:
Iniciado por LoveMeNot Ver Mensaje
A todo eso, para evitar cualquier inyección, siendo id un número entero, es tan facil como esto:

$id = (int) $_GET['id'];

Lo que hace es convertirlo a un tipo entero. En caso de que no sea capaz, por ejemplo porque en realidad es texto, lo convierte en un 0, con lo que no problemo. Aplicar cualquier otra cosa, en este caso, está de más.
entonces, que vendria siendo mas seguro? esconder el id con un hash o de convertirlo a un tipo entero?
  #9 (permalink)  
Antiguo 13/08/2008, 11:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: encriptar url de tipo link.php?id=1

Convertirla a un tipo entero, recuerda como siempre usar los tipos que necesitas, checando y filtrando todas las variables de entrada aunque vengan como hash.

Saludos.
  #10 (permalink)  
Antiguo 13/08/2008, 16:11
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 21 años, 3 meses
Puntos: 1
Respuesta: encriptar url de tipo link.php?id=1

yo utilizo esta funcion

Código PHP:

function encoded($ses
{    
  
$sesencoded $ses
  
$num mt_rand(4,4); 
  for(
$i=1;$i<=$num;$i++) 
  { 
     
$sesencoded 
     
base64_encode($sesencoded); 
  } 
  
  
$alpha_array 
  array(
'Y','D','U','R','P'
  
'S','B','M','A','T','H'); 
  
$sesencoded 
  
$sesencoded."+".$alpha_array[$num]; 
  
$sesencoded 
  
base64_encode($sesencoded); 
  return 
$sesencoded
}
//end of encoded function 

function decoded($str

   
$alpha_array 
   array(
'Y','D','U','R','P'
   
'S','B','M','A','T','H'); 
   
$decoded 
    
base64_decode($str); 
   list(
$decoded,$letter) = 
   
split("\+",$decoded); 
   for(
$i=0;$i<count($alpha_array);$i++) 
   { 
   if(
$alpha_array[$i] == $letter
   break; 
   } 
   for(
$j=1;$j<=$i;$j++) 
   { 
      
$decoded 
       
base64_decode($decoded); 
   } 
   return 
$decoded
}
//end of decoded function 
y lo utilizo asi:
Código:
<a href="view_orders.php?c=<?php echo encoded($com_id); ?>">Orders</a> |
y luego en view_orders.php
Código PHP:
$c=''.decoded($_REQUEST ['c']).'';
$db->execute("SELECT *,DATE_FORMAT(date_pickup, '%m-%d-%Y') as formatted_date FROM order_items WHERE com_id=".$c." ORDER BY  order_number DESC"); 
  #11 (permalink)  
Antiguo 13/08/2008, 23:07
Avatar de alonsoandres  
Fecha de Ingreso: enero-2004
Ubicación: Matamoros, Tamaulipas
Mensajes: 305
Antigüedad: 20 años, 3 meses
Puntos: 3
Respuesta: encriptar url de tipo link.php?id=1

gracias a todos por su ayuda, ya lo heche andar.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:17.