Phalcon - Управление файлами cookie
Файлы cookie, также известные как browser cookiesнебольшие текстовые файлы, хранящиеся в браузере. Он сохраняет всю информацию, относящуюся к личности пользователя. Эта информация используется для проверки пользователей, когда они просматривают разные страницы.
Есть два разных типа файлов cookie:
Session Cookies- Эти файлы cookie остаются в браузере и сохраняют информацию до его закрытия. Как только браузер откроется, он будет рассматриваться как новый сеанс для того же пользователя.
Persistent Cookies- Он включает установленный срок жизни и остается в браузере в течение указанного срока. Те веб-сайты, которые используют постоянные файлы cookie, отслеживают каждого пользователя, даже если браузер закрыт пользователем.
Давайте теперь обсудим, как файлы cookie работают в Phalcon.
Файлы cookie в Phalcon
Phalcon использует Phalcon\Http\Response\Cookiesкак глобальное хранилище файлов cookie. Файлы cookie хранятся в Phalcon при отправке запроса на сервер.
Ниже приведен синтаксис для настройки файла cookie -
$this->cookies->set(
"<cookie-name>",
"<cookie-value>",
time
);
Рассмотрим следующий пример. Используя следующий код, мы будем создавать файлы cookie пользователя, когда пользователь входит в веб-приложение.
<?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
);
}
}
Зашифрованные файлы cookie будут отображаться как выходные.
Описание
Имя файла cookie “loginAction” был создан с ценностью “abc”.
Метод “indexAction” проверяет, существует ли cookie, и соответственно распечатывает значение.
Шифрование файлов cookie
Файлы cookie в Phalcon зашифровываются перед отправкой на сервер в виде запроса и расшифровываются, как только мы получаем соответствующий ответ от сервера. Это обеспечивает безопасность авторизованных пользователей.
Всегда рекомендуется избегать хранения конфиденциальных данных в файлах cookie, несмотря на возможность шифрования и дешифрования. Конфигурация для шифрования файлов cookie включена вservices.php файл.
/**
* 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('AED@!sft56$'); // Use a unique Key!
return $crypt;
}
);
Note -
Всегда рекомендуется использовать шифрование при отправке файлов cookie на сервер.
Если шифрование не используется, все внутреннее приложение будет открыто злоумышленнику.
Также рекомендуется хранить небольшие данные и литералы в файлах cookie.