El ejemplo:
Vamos a editar un usuario, con campo clave "id".
En vez de incluir en el formulario:
Lo que se hace en PHP es:
Código PHP:
Ver original<?php
/* Se ha obtenido en $row los datos del usuario.
MY_SECRET_HASH está definido en la sesion, y es inicializado a una cadena aleatoria.
$formName es un nombre que le demos al formulario.
*/
$hash=md5($_SESSION["MY_SECRET_HASH"].$formName.$row["id"]); $_SESSION["FORMS"][$hash]=array("id"=>$row["id"]); ?>
<input type="hidden" name="hash" value="<?php echo $hash;?>" />
Al recibir el POST, se obtiene el valor de hash, se recupera el id de la sesion, se une con el resto de los $_POST, antes de procesar el formulario.
El objetivo es impedir que, manipulando las variables POST, se acceda a objetos que, por descuido en el lado del servidor, el usuario no puede tener acceso.