Tema: FAQ's de PHP
Ver Mensaje Individual
  #159 (permalink)  
Antiguo 11/04/2006, 15:14
Computer XTress
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 20 años
Puntos: 2
Mensaje Pasar variables entre paginas de forma segura (codificadas)

Pregunta:

Una de mis paginas carga su contenido de acuerdo a un GET / POST enviado por una página anterior.

¿Como puedo crear este proceso de forma segura?


Respuesta:

Muy facil Señor! Aqui le dejo dos funciones que van a hacer el trabajo por usted:

FUNCION 1: "Para codificar antes de enviar".

Código PHP:
function encode_this($string) {
    
$control "extra";
    
$tmp_string $string;
    
$string $control.$tmp_string.$control;

    
$string base64_encode($string);

    return(
$string);

ok... encode_this() recibe el string a codificar, puede ser un numero, claro.

Al string le agregara un codigo de control DELANTE y DETRAS, para reforzar un poco el tema.

Luego codifica TODO el string generado con Base64, y queda un chorizo de caracteres dificilmente identificable... algo asi como una abominación informática


FUNCION 2: "Para decodificar al recibir".

Código PHP:
function decode_this($string) {
    
$string base64_decode($string);
    
$control "extra";
    
$string str_replace($control"""$string");

    return 
$string;

Esta ultima funcion, lo que hace es:
1. Decofica en base64 el string entero (la abominación).
2. 'corta' del string el string de control que habia DELANTE y DETRAS.
3. Retorna el valor verdadero que se intentaba enviar.


¿COMO SE USA?

Pagina 1 (indice.php)

Código PHP:
/* $id puede ser un dato que tomamos de la base, o una lista generada, etc*/
$id encode_this($id);
echo 
"<a href='/abrir_pagina.php?id_secreto=".$id."'>Cargar pagina 234</a>"
Pagina 2 (/abrir_pagina.php)

Código PHP:

// $fecha_de_tu_cumpleaños es la clave, tomada de algun otro lado.

if ($_GET['id_secreto]) {

    if ( ($id = decode_this(['
id_secreto])) != $fecha_de_tu_cumplea&#241;os) {
               
echo "Pleas wait...<br>";
               exit();
        } else {
                
header("location: www.pentagono.gov/archivosecreto_de_ovnis.php?id=".$id);
        }
} else {
    echo 
"¿A donde crees que vas sin tu ID super secreto?<br>";
    exit();

Bueno esto es bastante básico, pero sirve como punto de partida. Hay muchos otros elementos que se podrian controlar, e incluso el "string de control" deberia ser distinto dependiendo el caso y lo que se quiera "mover" entre páginas...

SALUDOS!

eDU

Última edición por Computer XTress; 14/04/2006 a las 03:10