Menetapkan Kuki:
Dalam PHP, anda boleh menetapkan kuki menggunakan fungsi setcookie()
. Fungsi ini mesti dipanggil sebelum sebarang output dihantar kepada penyemak imbas. Inilah caranya anda boleh menetapkan kuki:
<code class="php">setcookie("cookie_name", "cookie_value", time() 3600, "/");</code>
Dalam contoh ini:
"cookie_name"
adalah nama cookie."cookie_value"
adalah nilai kuki.time() 3600
menetapkan masa tamat tempoh hingga satu jam dari sekarang."/"
Menentukan bahawa kuki boleh didapati di seluruh domain.Mendapatkan kuki:
Untuk mendapatkan kuki, anda boleh mengakses array superglobal $_COOKIE
:
<code class="php">$cookie_value = $_COOKIE['cookie_name'];</code>
Ini akan mengembalikan nilai cookie bernama cookie_name
.
Menghapus kuki:
Untuk memadam kuki, anda perlu menetapkan masa tamatnya pada masa lalu:
<code class="php">setcookie("cookie_name", "", time() - 3600, "/");</code>
Ini menetapkan masa tamat tempoh satu jam yang lalu, yang secara berkesan memadamkan kuki.
Memastikan keselamatan kuki adalah penting apabila bekerja dengan PHP. Berikut adalah beberapa amalan untuk meningkatkan keselamatan kuki:
Gunakan HTTPS:
Sentiasa gunakan HTTPS untuk menyulitkan data yang dihantar antara klien dan pelayan. Ini menghalang serangan lelaki-dalam-pertengahan di mana seseorang boleh memintas dan mengubah suai data cookie.
<code class="php">setcookie("cookie_name", "cookie_value", time() 3600, "/", "", true, true);</code>
Dua hujah terakhir true, true
menetapkan bendera secure
dan httponly
masing -masing.
Bendera selamat:
Bendera secure
memastikan bahawa kuki hanya dihantar melalui sambungan HTTPS.
Bendera httponly:
Bendera httponly
menghalang skrip sisi klien (seperti JavaScript) daripada mengakses cookie, yang membantu mengurangkan risiko serangan skrip lintas tapak (XSS).
Mengesahkan dan Sanitize:
Sentiasa mengesahkan dan membersihkan data kuki sebelum menggunakannya. Ini membantu mencegah serangan suntikan.
<code class="php">if (isset($_COOKIE['cookie_name'])) { $cookie_value = filter_var($_COOKIE['cookie_name'], FILTER_SANITIZE_STRING); }</code>
Gunakan jangka hayat pendek:
Tetapkan cookies untuk mempunyai jangka hayat pendek untuk mengurangkan tingkap peluang untuk penyerang menggunakan cookie yang dicuri.
Gunakan awalan kuki:
Gunakan awalan __Secure-
dan __Host-
untuk memastikan kuki hanya dihantar melalui saluran yang selamat dan untuk menyekat jalan dan domain mereka.
Menguruskan data sesi dengan kuki di PHP melibatkan beberapa amalan terbaik untuk memastikan kecekapan dan keselamatan:
Gunakan Sesi PHP:
PHP menyediakan sistem pengurusan sesi terbina dalam yang menggunakan kuki untuk menjejaki ID sesi. Ini adalah cara yang disyorkan untuk menguruskan data sesi.
<code class="php">session_start(); $_SESSION['user_id'] = $user_id;</code>
ID Sesi Regenerasi:
Untuk mengelakkan serangan penetapan sesi, menjana semula ID sesi selepas log masuk yang berjaya.
<code class="php">session_regenerate_id(true);</code>
Gunakan kuki sesi yang selamat:
Pastikan cookie sesi ditetapkan dengan bendera secure
dan httponly
.
<code class="php">session_set_cookie_params(0, '/', '', true, true); session_start();</code>
Data sesi simpan di pelayan:
Simpan data sesi sensitif pada pelayan dan bukannya dalam kuki itu sendiri. Hanya ID sesi yang perlu disimpan dalam kuki.
Masa tamat sesi:
Tetapkan masa tamat sesi yang sesuai untuk mengimbangi kemudahan pengguna dengan keselamatan.
<code class="php">ini_set('session.gc_maxlifetime', 3600); // 1 hour session_start();</code>
Mengesahkan data sesi:
Sentiasa mengesahkan dan membersihkan data sesi sebelum menggunakannya untuk mengelakkan serangan suntikan.
<code class="php">if (isset($_SESSION['user_id'])) { $user_id = filter_var($_SESSION['user_id'], FILTER_SANITIZE_NUMBER_INT); }</code>
Semasa bekerja dengan kuki di PHP, anda harus mengetahui beberapa isu biasa:
Output sebelum tetapan kuki:
Kuki mesti ditetapkan sebelum sebarang output dihantar ke penyemak imbas. Jika anda cuba menetapkan kuki selepas menghantar output, anda akan mendapat ralat "tajuk sudah dihantar".
Batasan Saiz Cookie:
Pelayar mempunyai had pada saiz kuki. Saiz keseluruhan semua kuki yang dihantar ke domain biasanya terhad kepada sekitar 4KB. Berhati -hati dengan ini apabila menyimpan data dalam kuki.
Skrip lintas tapak (XSS):
Jika kuki boleh diakses oleh skrip sampingan klien, mereka boleh terdedah kepada serangan XSS. Sentiasa gunakan bendera httponly
untuk mengurangkan risiko ini.
Penetapan Sesi:
Jika penyerang boleh menetapkan ID sesi pengguna sebelum log masuk, mereka boleh merampas sesi selepas log masuk. Sentiasa menjana semula ID sesi selepas log masuk.
Cookie mengganggu:
Pengguna boleh merosakkan data cookie di sisi klien. Sentiasa mengesahkan dan membersihkan data cookie di sebelah pelayan.
Kebimbangan Privasi:
Pengguna boleh melumpuhkan kuki atau membersihkannya, yang boleh menjejaskan fungsi aplikasi anda. Menyediakan kaedah alternatif untuk mengekalkan keadaan apabila kuki tidak tersedia.
Perbezaan Zon Waktu:
Berhati -hati dengan perbezaan zon waktu apabila menetapkan masa tamat tempoh untuk kuki. Gunakan UTC atau masa pelayan secara konsisten.
Dengan memahami dan menangani isu -isu biasa ini, anda dapat bekerja dengan berkesan dengan kuki di PHP dan meningkatkan keselamatan dan kebolehpercayaan aplikasi anda.
Atas ialah kandungan terperinci Bagaimana anda menetapkan, mengambil, dan memadam kuki di PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!