Учебники

Phalcon — Управление cookie

Файлы cookie, также известные как файлы cookie браузера, представляют собой небольшие текстовые файлы, хранящиеся в браузере. Сохраняет всю информацию, связанную с идентификацией пользователя. Эта информация используется для проверки пользователей, когда они просматривают разные страницы.

Есть два разных типа файлов cookie —

  • Сеансовые cookie-файлы. Эти типы cookie-файлов остаются в браузере и сохраняют информацию до тех пор, пока браузер не будет закрыт. Как только браузер откроется, он будет рассматриваться как новый сеанс для того же пользователя.

  • Постоянные файлы cookie — они включают в себя установленную продолжительность жизни и остаются в браузере в течение заданной продолжительности жизни. Те веб-сайты, которые используют постоянные файлы cookie, отслеживают каждого пользователя, даже если браузер закрыт пользователем.

Сеансовые cookie-файлы. Эти типы cookie-файлов остаются в браузере и сохраняют информацию до тех пор, пока браузер не будет закрыт. Как только браузер откроется, он будет рассматриваться как новый сеанс для того же пользователя.

Постоянные файлы cookie — они включают в себя установленную продолжительность жизни и остаются в браузере в течение заданной продолжительности жизни. Те веб-сайты, которые используют постоянные файлы cookie, отслеживают каждого пользователя, даже если браузер закрыт пользователем.

Давайте теперь обсудим, как куки работают в Phalcon.

Печенье в Фальконе

Phalcon использует Phalcon \ Http \ Response \ Cookies в качестве глобального хранилища для файлов cookie. Файлы cookie хранятся в Phalcon при отправке запроса на сервер.

Ниже приведен синтаксис для настройки Cookie —

$this->cookies->set( 
   "<cookie-name>", 
   "<cookie-value>", 
   time 
); 

Рассмотрим следующий пример. Используя следующий код, мы создадим куки пользователя, когда пользователь войдет в веб-приложение.

<?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 с именем «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; 
   } 
);      

Примечание

Всегда рекомендуется использовать шифрование при отправке куки на сервер.

Если шифрование не используется, все внутреннее приложение будет открыто для злоумышленника.

Также рекомендуется хранить небольшие данные и литералы в куки.