Cookie Phalcon

Cookie Phalcon adalah cara yang sangat berguna untuk menyimpan potongan-potongan kecil dari data dalam klien yang dapat diambil bahkan jika pengguna menutup browser-nya. Phalcon \ Http \ Response \ Cookies bertindak sebagai penampung global untuk cookies. Cookies disimpan dalam penampung ini selama eksekusi permintaan dan akan dikirim secara otomatis pada akhir permintaan.

Penggunaan Dasar Cookie Phalcon 

Anda dapat mengatur / mendapatkan cookie dengan hanya mengakses layanan ‘cookies’ dalam setiap bagian dari aplikasi di mana layanan dapat diakses:

<?php

class SessionController extends Phalcon\Mvc\Controller
{
    public function loginAction()
    {
        //Check if the cookie has previously set
        if ($this->cookies->has('remember-me')) {

            //Get the cookie
            $rememberMe = $this->cookies->get('remember-me');

            //Get the cookie's value
            $value = $rememberMe->getValue();

        }
    }

    public function startAction()
    {
        $this->cookies->set('remember-me', 'some value', time() + 15 * 86400);
    }
}

Enkripsi / Dekripsi Cookie 

Secara default, cookie secara otomatis dienkripsi sebelum dikirim ke klien dan didekripsi ketika diambil. Perlindungan ini memungkinkan pengguna yang tidak dapat untuk melihat isi cookie di client (browser). Meskipun dilengkapi perlindungan ini, data yang sensitif tidak boleh disimpan pada cookie.

Anda dapat menonaktifkan enkripsi dengan cara sebagai berikut:

<?php

$di->set('cookies', function() {
    $cookies = new Phalcon\Http\Response\Cookies();
    $cookies->useEncryption(false);
    return $cookies;
});

Dalam kasus menggunakan enkripsi kunci global harus diatur dalam layanan ‘crypt’:

<?php

$di->set('crypt', function() {
    $crypt = new Phalcon\Crypt();
    $crypt->setKey('#1dj8$=dp?.ak//j1V$'); //Use your own key!
    return $crypt;
});

Mengirim data cookies tanpa enkripsi untuk klien termasuk objek yang kompleks struktur, resultsets, layanan informasi, dan lain-lain dapat mengekspos rincian aplikasi internal yang dapat digunakan oleh penyerang untuk menyerang aplikasi. Jika Anda tidak ingin menggunakan enkripsi, kami sangat menyarankan Anda hanya mengirim data cookie yang sangat dasar seperti angka atau string literal kecil.