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ñ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.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
