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ñ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