Phalcon - Gestión de cookies
Cookies también conocidas como browser cookiesson pequeños archivos de texto almacenados en el navegador. Guarda toda la información relacionada con la identidad del usuario. Esta información se utiliza para validar a los usuarios una vez que navegan por diferentes páginas.
Hay dos tipos diferentes de cookies:
Session Cookies- Este tipo de cookies permanecen en el navegador y retienen información hasta que se cierra el navegador. Tan pronto como se abra el navegador, se tratará como una nueva sesión para el mismo usuario.
Persistent Cookies- Incluye una vida útil estipulada y permanece en el navegador dentro de la vida útil determinada. Los sitios web que utilizan cookies persistentes realizan un seguimiento de todos y cada uno de los usuarios, incluso si el usuario cierra el navegador.
Analicemos ahora cómo funcionan las cookies en Phalcon.
Galletas en Phalcon
Usos de Phalcon Phalcon\Http\Response\Cookiescomo almacenamiento global de cookies. Las cookies se almacenan en Phalcon mientras se envía una solicitud al servidor.
A continuación se muestra la sintaxis para configurar una cookie:
$this->cookies->set(
"<cookie-name>",
"<cookie-value>",
time
);
Considere el siguiente ejemplo. Usando el siguiente código, crearemos cookies del usuario cuando el usuario inicie sesión en la aplicación web.
<?php
class UsersController extends \Phalcon\Mvc\Controller {
public function indexAction() {
if ($this->cookies->has("login-action")) {
// Get the cookie
$loginCookie = $this->cookies->get("login-action");
// Get the cookie's value
$value = $loginCookie->getValue();
echo($value);
}
$this->cookies->set(
"login-action",
"abc",
time() + 15 * 86400
);
}
}
Las cookies cifradas se mostrarán como salida.
Descripción
Cookie nombrada “loginAction” ha sido creado con valor “abc”.
El método “indexAction” comprueba si la cookie existe e imprime el valor en consecuencia.
Cifrado de cookies
Las cookies en Phalcon se cifran antes de enviarse al servidor como una solicitud y se descifran tan pronto como obtenemos una respuesta adecuada del servidor. Esto asegura la seguridad de los usuarios autorizados.
Siempre se sugiere evitar el almacenamiento de datos sensibles en cookies, a pesar de la funcionalidad de cifrado y descifrado. La configuración para el cifrado de cookies se incluye enservices.php archivo.
/**
* Enable encryption key for setting values of cookies
*/
$di->set(
"cookies", function () {
$cookies = new Cookies();
$cookies->useEncryption(false);
return $cookies;
}
);
/**
* Set encryption key
*/
$di->set(
"crypt", function () {
$crypt = new Crypt();
$crypt->setKey('[email protected]!sft56$'); // Use a unique Key!
return $crypt;
}
);
Note -
Siempre se sugiere utilizar cifrado al enviar cookies al servidor.
Si no se utiliza el cifrado, toda la aplicación interna quedará expuesta al atacante.
También se recomienda almacenar pequeños datos y literales en las cookies.