Para garantizar la integridad de la información ingresada desde un formulario en un sitio web, es necesario verificar que los datos ingresados por el usuario hayan sido desde este y no a través de robots o usuarios malintencionados.
Para garantizar esta información son necesarias dos cosas: una sesión y un token.
- Sesión: ayuda a mantener datos durante la visita del usuario.
- Token: cadena de caracteres que sirven de identificador clave.
En la página donde se encuentre nuestro formulario debemos crear una sesión en php que tendrá el valor de nuestro token, e incluir este valor en un input oculto, para que así al enviar los datos del formulario a un archivo, podamos comparar el valor de la sesión con el valor recibido del input oculto.
Esto nos ayuda a verificar que el usuario ingreso datos desde nuestro formulario y no desde otros sitios o aplicaciones.
Un ejemplo de esto es el siguiente:
archivo: formulario.php
<?php
session_start();
$token = md5(uniqid(rand(), true));
$_SESSION['token'] = $token;
?>
<form action="recibir.php" method="post">
<input name="token" type="hidden" value="<?php echo $token; ?>" />
<input type="text" name="campo">
</form>
archivo: recibir.php
session_start();
if (isset($_SESSION['token']) && isset($_POST['token']) && $_POST['token'] == $_SESSION['token']) {
//guardar o manipular datos.
} else {
//no existe la sesión / no existe el dato recibido por post / el token no es igual.
}
unset($_SESSION['token']);
?>
No hay comentarios:
Publicar un comentario