Praktik Terbaik Keamanan Sesi
Cegah fiksasi dan pembajakan sesi dengan regenerasi serta flag keamanan.
Praktik Terbaik Keamanan Sesi adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.
Serangan Fiksasi Sesi
Penyerang menipu pengguna agar menggunakan ID sesi yang sudah diketahui penyerang, lalu mengambil alih sesi tersebut setelah pengguna masuk.
Mencegah Fiksasi: session_regenerate_id()
Setelah perubahan hak istimewa apa pun (masuk, perubahan peran), buat ID sesi baru sambil mempertahankan data sesi yang sudah ada.
<?php
session_start();
// After successful login:
session_regenerate_id(true); // true = delete old session file
$_SESSION["user_id"] = $userId;Pembajakan Sesi
Penyerang mencuri ID sesi melalui penyadapan jaringan, XSS, atau kebocoran catatan. Kurangi risikonya dengan HTTPS, cookie HttpOnly, dan pembuatan sidik jari.
session.cookie_httponly
Cegah JavaScript membaca cookie sesi — tindakan ini menghentikan sebagian besar pencurian sesi berbasis XSS.
<?php
ini_set("session.cookie_httponly", 1);
session_start();session.cookie_secure
Tandai cookie sesi sebagai Secure agar hanya dikirim melalui HTTPS.
<?php
ini_set("session.cookie_secure", 1);
session_start();session.cookie_samesite
Atur SameSite ke Strict atau Lax untuk mencegah serangan CSRF yang menggunakan cookie sesi.
<?php
ini_set("session.cookie_samesite", "Strict");
session_start();Pengikatan Agen Pengguna
Simpan Agen Pengguna dalam sesi saat masuk, lalu verifikasi pada setiap permintaan untuk mendeteksi pembajakan.
<?php
if (!isset($_SESSION["ua"])) {
$_SESSION["ua"] = $_SERVER["HTTP_USER_AGENT"];
} elseif ($_SESSION["ua"] !== $_SERVER["HTTP_USER_AGENT"]) {
session_destroy();
die("Session invalid");
}Batas Waktu Sesi
Terapkan batas waktu berdasarkan aktivitas — keluarkan pengguna yang tidak aktif secara otomatis.
<?php
$timeout = 1800;
if (isset($_SESSION["last_active"]) &&
time() - $_SESSION["last_active"] > $timeout) {
session_destroy();
header("Location: /login");
exit;
}
$_SESSION["last_active"] = time();session.use_strict_mode
Aktifkan mode ketat agar server menolak ID sesi yang tidak dikenali — tindakan ini mencegah fiksasi sesi melalui penyisipan URL.
<?php
ini_set("session.use_strict_mode", 1);
session_start();Penangan Sesi Khusus
Menyimpan sesi di Redis atau basis data memungkinkan Anda membatalkan semua sesi seorang pengguna secara terpusat dan memantau sesi yang aktif.
Regenerasi Berkala
Bahkan selama sesi terautentikasi yang panjang, buat ulang ID sesi setiap 15–30 menit untuk mengurangi risiko pencurian token.
Ringkasan
Selalu gunakan HTTPS, atur tanda HttpOnly+Secure+SameSite, panggil session_regenerate_id(true) setelah masuk, terapkan batas waktu saat tidak aktif, dan gunakan mode ketat.
Pemeriksaan Singkat
Apa yang dilakukan session_regenerate_id(true)?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Praktik Terbaik Keamanan Sesi” gratis?
Ya — teks lengkap “Praktik Terbaik Keamanan Sesi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Praktik Terbaik Keamanan Sesi”?
Cegah fiksasi dan pembajakan sesi dengan regenerasi serta flag keamanan. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai PHP Academy?
Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Praktik Terbaik Keamanan Sesi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Memulai dan Menggunakan Sesi
- Praktik Terbaik Keamanan Sesi
- Mengatur dan Membaca Cookie
- Keamanan Cookie: Flag HttpOnly dan Secure