Phalcon - Manajemen Cookie

Cookies juga dikenal sebagai browser cookiesadalah file teks kecil yang disimpan di browser. Ini menyimpan semua informasi yang terkait dengan identitas pengguna. Informasi ini digunakan untuk memvalidasi pengguna setelah mereka menelusuri halaman yang berbeda.

Ada dua jenis Cookies -

  • Session Cookies- Jenis cookie ini tetap ada di browser dan menyimpan informasi hingga browser ditutup. Begitu browser dibuka, itu akan diperlakukan sebagai sesi baru untuk pengguna yang sama.

  • Persistent Cookies- Ini mencakup jangka waktu yang ditentukan dan tetap di browser dalam jangka waktu yang ditentukan. Situs web yang menggunakan cookie tetap melacak setiap pengguna, bahkan jika browser ditutup oleh pengguna.

Sekarang mari kita bahas bagaimana cookie bekerja di Phalcon.

Cookie di Phalcon

Menggunakan Phalcon Phalcon\Http\Response\Cookiessebagai penyimpanan global untuk cookie. Cookie disimpan di Phalcon saat mengirim permintaan ke server.

Berikut ini adalah sintaks untuk menyiapkan Cookie -

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

Perhatikan contoh berikut. Dengan menggunakan kode berikut, kami akan membuat cookie pengguna saat pengguna masuk ke aplikasi 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 
      ); 
   } 
}

Cookie terenkripsi akan ditampilkan sebagai keluaran.

Deskripsi

Cookie bernama “loginAction” telah dibuat dengan nilai “abc”.

Metode “indexAction” memeriksa apakah cookie ada dan mencetak nilai yang sesuai.

Enkripsi Cookie

Cookies di Phalcon dienkripsi sebelum dikirim ke server sebagai permintaan dan didekripsi segera setelah kami mendapatkan respon yang sesuai dari server. Ini menjamin keamanan pengguna yang sah.

Selalu disarankan untuk menghindari penyimpanan data sensitif dalam cookie, terlepas dari fungsionalitas enkripsi dan dekripsi. Konfigurasi untuk enkripsi cookie disertakan diservices.php mengajukan.

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

  • Selalu disarankan untuk menggunakan enkripsi saat mengirim cookie ke server.

  • Jika enkripsi tidak digunakan, semua aplikasi internal akan diekspos ke penyerang.

  • Juga disarankan untuk menyimpan data kecil dan literal dalam cookie.