Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana anda menetapkan, mengambil, dan memadam kuki di PHP?

Bagaimana anda menetapkan, mengambil, dan memadam kuki di PHP?

Karen Carpenter
Lepaskan: 2025-03-20 18:41:24
asal
200 orang telah melayarinya

Bagaimana anda menetapkan, mengambil, dan memadam kuki di PHP?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Ini menetapkan masa tamat tempoh satu jam yang lalu, yang secara berkesan memadamkan kuki.

Bagaimanakah saya dapat memastikan keselamatan kuki semasa menggunakan php?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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.

Apakah amalan terbaik untuk menguruskan data sesi dengan kuki di PHP?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Apakah isu -isu biasa yang harus saya ketahui ketika bekerja dengan kuki di PHP?

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan