Управление куки
Куки — это очень полезный способ хранения небольших данных на компьютере клиента, которые можно получить даже после закрытия браузера пользователем. Phalcon\Http\Response\Cookies выступает в качестве глобального хранилища для куки. Куки хранятся в этом хранилище во время выполнения запроса и автоматически отправляются в конце запроса.
Основное использование
Вы можете устанавливать/получать куки, просто обращаясь к сервису ‘cookies’ в любой части приложения, где доступны сервисы:
use Phalcon\Mvc\Controller;
class SessionController extends Controller
{
public function loginAction()
{
// Check if the cookie has previously set
if ($this->cookies->has("remember-me")) {
// Get the cookie
$rememberMeCookie = $this->cookies->get("remember-me");
// Get the cookie's value
$value = $rememberMeCookie->getValue();
}
}
public function startAction()
{
$this->cookies->set(
"remember-me",
"some value",
time() + 15 * 86400
);
}
public function logoutAction()
{
$rememberMeCookie = $this->cookies->get("remember-me");
// Delete the cookie
$rememberMeCookie->delete();
}
}
Шифрование/Дешифрование куки
По умолчанию куки автоматически шифруются перед отправкой клиенту и дешифруются при получении от пользователя. Эта защита предотвращает несанкционированный доступ к содержимому куки клиентом (браузером). Несмотря на эту защиту, конфиденциальные данные не следует хранить в куки.
Вы можете отключить шифрование следующим образом:
use Phalcon\Http\Response\Cookies;
$di->set(
"cookies",
function () {
$cookies = new Cookies();
$cookies->useEncryption(false);
return $cookies;
}
);
Если вы хотите использовать шифрование, глобальный ключ должен быть установлен в сервисе ‘crypt’:
use Phalcon\Crypt;
$di->set(
"crypt",
function () {
$crypt = new Crypt();
$crypt->setKey('#1dj8$=dp?.ak//j1V$'); // Use your own key!
return $crypt;
}
);
Отправка данных куки без шифрования клиентам, включая сложные структуры объектов, наборы результатов, информацию о сервисах и т. д., может раскрыть внутренние детали приложения, которые могут быть использованы злоумышленником для атаки на приложение. Если вы не хотите использовать шифрование, мы настоятельно рекомендуем отправлять только очень базовые данные куки, такие как числа или небольшие строковые литералы.
© 2011–2017 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/latest/reference/cookies.html