0Pricing
PHP Academy · Pelajaran

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

  1. Memulai dan Menggunakan Sesi
  2. Praktik Terbaik Keamanan Sesi
  3. Mengatur dan Membaca Cookie
  4. Keamanan Cookie: Flag HttpOnly dan Secure
← Kembali ke PHP Academy