Phalcon - Zarządzanie plikami cookie

Pliki cookie znane również jako browser cookiesto małe pliki tekstowe przechowywane w przeglądarce. Zapisuje wszystkie informacje związane z tożsamością użytkownika. Informacje te służą do weryfikacji użytkowników podczas przeglądania różnych stron.

Istnieją dwa różne typy plików cookie -

  • Session Cookies- Tego typu pliki cookie pozostają w przeglądarce i zachowują informacje do jej zamknięcia. Gdy tylko przeglądarka zostanie otwarta, będzie traktowana jako nowa sesja tego samego użytkownika.

  • Persistent Cookies- Obejmuje określoną żywotność i pozostaje w przeglądarce przez określony czas. Te strony internetowe, które używają trwałych plików cookie, śledzą każdego użytkownika, nawet jeśli przeglądarka jest przez niego zamknięta.

Omówmy teraz, jak działają pliki cookie w Phalcon.

Pliki cookie w Phalcon

Phalcon używa Phalcon\Http\Response\Cookiesjako globalny magazyn plików cookie. Pliki cookie są przechowywane w Phalcon podczas wysyłania żądania do serwera.

Poniżej znajduje się składnia konfiguracji pliku cookie -

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

Rozważmy następujący przykład. Korzystając z poniższego kodu, utworzymy ciasteczka użytkownika, gdy zaloguje się on do aplikacji internetowej.

<?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 
      ); 
   } 
}

Zaszyfrowane pliki cookie zostaną wyświetlone jako dane wyjściowe.

Opis

Plik cookie o nazwie “loginAction” został stworzony z wartością “abc”.

Metoda “indexAction” sprawdza, czy plik cookie istnieje i odpowiednio drukuje wartość.

Szyfrowanie plików cookie

Pliki cookie w Phalcon są szyfrowane przed wysłaniem na serwer jako żądanie i odszyfrowane, gdy tylko otrzymamy odpowiednią odpowiedź z serwera. Zapewnia to bezpieczeństwo uprawnionym użytkownikom.

Zawsze zaleca się unikanie przechowywania poufnych danych w plikach cookie, pomimo funkcji szyfrowania i deszyfrowania. Konfiguracja do szyfrowania plików cookie jest zawarta wservices.php plik.

/** 
   * 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 -

  • Zawsze zaleca się szyfrowanie podczas wysyłania plików cookie na serwer.

  • Jeśli szyfrowanie nie jest używane, cała aplikacja wewnętrzna zostanie ujawniona atakującemu.

  • Zaleca się również przechowywanie małych danych i literałów w plikach cookie.