Keselamatan Kuki: Bendera HttpOnly dan Secure
Lindungi kuki dengan atribut HttpOnly, Secure dan SameSite.
Keselamatan Kuki: Bendera HttpOnly dan Secure ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Bendera HttpOnly
Apabila kuki mempunyai bendera HttpOnly, JavaScript tidak boleh mengaksesnya melalui document.cookie, sekali gus menghalang pencurian sesi berasaskan XSS.
Menetapkan HttpOnly dan Secure
Gunakan bentuk tatasusunan pilihan (PHP 7.3+) untuk kod yang kemas dan mudah dibaca.
<?php
setcookie("session_id", $id, [
"expires" => time() + 3600,
"path" => "/",
"secure" => true,
"httponly" => true,
"samesite" => "Strict",
]);Bendera Secure
Kuki Secure hanya dihantar melalui HTTPS. Pada sambungan HTTP, pelayar tidak menyertakannya, sekali gus menghalang pemintasan melalui HTTP biasa.
Atribut SameSite
SameSite mengawal masa kuki dihantar bersama permintaan merentas tapak:
Strict— hanya permintaan daripada tapak yang samaLax— tapak yang sama + navigasi peringkat atasNone— merentas tapak (memerlukan Secure)
SameSite dan CSRF
Menetapkan SameSite kepada mod ketat atau longgar mengurangkan risiko CSRF kerana kuki sesi tidak dihantar bersama permintaan POST merentas tapak yang dipalsukan.
Tetapan Kuki Sesi php.ini
Konfigurasikan keselamatan kuki sesi lalai semasa masa jalan:
<?php
ini_set("session.cookie_httponly", "1");
ini_set("session.cookie_secure", "1");
ini_set("session.cookie_samesite", "Lax");
session_start();Awalan Kuki
Pelayar mematuhi awalan nama kuki:
__Secure-— kuki mesti mempunyai bendera Secure__Host-— mesti mempunyai Secure, Path=/ dan tiada atribut Domain
Contoh Awalan Kuki
Gunakan awalan __Host- untuk mengikat kuki kepada hos yang tepat.
<?php
setcookie("__Host-session", $token, [
"secure" => true,
"httponly" => true,
"samesite" => "Strict",
"path" => "/",
]);Menyemak Bendera dalam DevTools
Dalam DevTools pelayar → Aplikasi → Kuki, sahkan: HttpOnly ditanda, Secure ditanda dan SameSite menunjukkan Strict atau Lax.
Tanpa HttpOnly
Skrip berniat jahat yang disuntik melalui XSS boleh menjalankan document.cookie, membaca ID sesi dan menghantarnya kepada penyerang — lalu mengambil alih akaun.
Tanpa Secure
Pada tapak HTTP/HTTPS bercampur, kuki sesi dihantar dalam teks biasa melalui HTTP. Penyadap rangkaian boleh mencurinya.
Ringkasan
Sentiasa tetapkan HttpOnly dan Secure pada kuki sesi serta pengesahan. Tambahkan SameSite=Strict atau Lax. Gunakan bentuk tatasusunan pilihan bagi setcookie().
Semakan Pantas
Bendera manakah yang menghalang JavaScript daripada membaca kuki?
Pelajari PHP dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 49
- Pelajaran
- 195
Soalan Lazim
Adakah pelajaran “Keselamatan Kuki: Bendera HttpOnly dan Secure” percuma?
Ya — teks penuh “Keselamatan Kuki: Bendera HttpOnly dan Secure” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Keselamatan Kuki: Bendera HttpOnly dan Secure”?
Lindungi kuki dengan atribut HttpOnly, Secure dan SameSite. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Keselamatan Kuki: Bendera HttpOnly dan Secure” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Memulakan dan Menggunakan Sesi
- Amalan Terbaik Keselamatan Sesi
- Menetapkan dan Membaca Kuki
- Keselamatan Kuki: Bendera HttpOnly dan Secure