Phalcon - Gestion des cookies

Cookies également appelés browser cookiessont de petits fichiers texte stockés dans le navigateur. Il enregistre toutes les informations relatives à l'identité de l'utilisateur. Ces informations sont utilisées pour valider les utilisateurs une fois qu'ils parcourent différentes pages.

Il existe deux types de cookies différents -

  • Session Cookies- Ces types de cookies restent sur le navigateur et conservent les informations jusqu'à ce que le navigateur soit fermé. Dès que le navigateur est ouvert, il sera traité comme une nouvelle session pour le même utilisateur.

  • Persistent Cookies- Il comprend une durée de vie stipulée et reste dans le navigateur pendant la durée de vie donnée. Les sites Web qui utilisent des cookies persistants gardent une trace de chaque utilisateur, même si le navigateur est fermé par l'utilisateur.

Voyons maintenant comment fonctionnent les cookies dans Phalcon.

Biscuits à Phalcon

Utilisations de Phalcon Phalcon\Http\Response\Cookiesen tant que stockage global pour les cookies. Les cookies sont stockés dans Phalcon lors de l'envoi d'une requête au serveur.

Voici la syntaxe pour configurer un cookie -

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

Prenons l'exemple suivant. En utilisant le code suivant, nous créerons des cookies de l'utilisateur lorsque l'utilisateur se connectera à l'application Web.

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

Les cookies cryptés seront affichés en sortie.

La description

Cookie nommé “loginAction” a été créé avec valeur “abc”.

La méthode “indexAction” vérifie si le cookie existe et imprime la valeur en conséquence.

Cryptage des cookies

Les cookies dans Phalcon sont cryptés avant d'être envoyés au serveur en tant que requête et décryptés dès que nous obtenons une réponse appropriée du serveur. Cela garantit la sécurité des utilisateurs autorisés.

Il est toujours conseillé d'éviter de stocker des données sensibles dans des cookies, malgré la fonctionnalité de cryptage et de décryptage. La configuration du cryptage des cookies est incluse dansservices.php fichier.

/** 
   * 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('[email protected]!sft56$'); // Use a unique Key!  
      return $crypt; 
   } 
);

Note -

  • Il est toujours suggéré d'utiliser le cryptage lors de l'envoi de cookies au serveur.

  • Si le cryptage n'est pas utilisé, toute l'application interne sera exposée à l'attaquant.

  • Il est également recommandé de stocker de petites données et des littéraux dans des cookies.