Kuki adalah kepingan kecil data yang disimpan pada komputer pengguna oleh pelayar web semasa melayari laman web. Dalam PHP, kuki digunakan untuk mengurus data sesi, menyimpan keutamaan pengguna, dan memudahkan pengalaman pengguna yang lebih diperibadikan.
Apabila skrip PHP mahu menetapkan kuki, ia menghantar tajuk Set-Cookie
kepada penyemak imbas pengguna, yang merangkumi nama, nilai, masa tamat, laluan, dan pilihan keselamatan cookie. Sebaik sahaja penyemak imbas menerima tajuk ini, ia menjimatkan cookie mengikut parameter yang ditentukan. Pada permintaan berikutnya ke domain yang sama, penyemak imbas secara automatik menghantar cookie kembali ke pelayan dalam tajuk Cookie
.
PHP kemudian boleh mengakses data cookie menggunakan array superglobal $_COOKIE
. Ini membolehkan skrip PHP membaca nilai kuki yang dihantar oleh penyemak imbas dan menggunakannya untuk pelbagai tujuan, seperti mengekalkan keadaan sesi atau mengingati tetapan pengguna.
Kuki melayani beberapa tujuan bersama dalam aplikasi web PHP:
Menetapkan kuki dalam PHP dilakukan menggunakan fungsi setcookie()
. Inilah contoh:
<code class="php">// Set a cookie that expires in one hour setcookie('username', 'JohnDoe', time() 3600, '/');</code>
Dalam contoh ini:
'username'
adalah nama cookie.'JohnDoe'
adalah nilai kuki.time() 3600
menetapkan masa tamat tempoh hingga satu jam dari sekarang.'/'
Menentukan jalan pada pelayan di mana kuki akan tersedia. Untuk mendapatkan kuki, PHP menyediakan array superglobal $_COOKIE
. Anda boleh mengakses nilai kuki dengan namanya:
<code class="php">// Retrieve the value of the 'username' cookie $username = $_COOKIE['username'] ?? null;</code>
Dalam contoh ini, $_COOKIE['username']
mengambil nilai cookie 'nama pengguna'. Operator Coalescing Null ??
digunakan untuk memberikan nilai lalai ( null
) jika kuki tidak wujud.
Menggunakan kuki di PHP dilengkapi dengan beberapa pertimbangan keselamatan:
Bendera selamat : Gunakan bendera secure
untuk memastikan kuki hanya dihantar melalui HTTPS. Ini membantu mencegah serangan lelaki-dalam-pertengahan:
<code class="php">setcookie('username', 'JohnDoe', time() 3600, '/', '', true); // 'true' sets the secure flag</code>
Bendera Httponly : Tetapkan bendera httpOnly
untuk mengelakkan skrip sisi klien daripada mengakses kuki, mengurangkan risiko serangan skrip lintas tapak (XSS):
<code class="php">setcookie('username', 'JohnDoe', time() 3600, '/', '', true, true); // 'true' sets the httpOnly flag</code>
Atribut Samesite : Gunakan atribut SameSite
untuk menentukan sama ada dan bagaimana kuki dihantar dengan permintaan silang asal, mengurangkan serangan pemalsuan permintaan lintas tapak (CSRF):
<code class="php">setcookie('username', 'JohnDoe', time() 3600, '/', '', true, true, 'Lax'); // 'Lax' sets the SameSite attribute</code>
Dengan mengikuti amalan keselamatan ini, anda boleh membantu melindungi data pengguna anda dan meningkatkan keselamatan aplikasi PHP anda yang menggunakan kuki.
Atas ialah kandungan terperinci Terangkan bagaimana kuki berfungsi dalam PHP.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!