PHP:Pasar variables entre páginas de forma segura (codificadas)

De Foros del Web

Pregunta:

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

¿Cómo puedo crear este proceso de forma segura?


Respuesta:

Muy fácil Señor! Aquí 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 número, claro.

Al string le agregará un código 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 así 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 última función, lo que hace es: 1. Decofica en base64 el string entero (la abominación). 2. 'corta' del string el string de control que había DELANTE y DETRAS. 3. Retorna el valor verdadero que se intentaba enviar.

¿CÓMO SE USA?

Página 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>";  

Página 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 dónde 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 podrían controlar, e incluso el "string de control" debería ser distinto dependiendo el caso y lo que se quiera "mover" entre páginas...


--Computer XTress 11 Abr 2006

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales