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.