Memahami Cookie di PHP: Cara Kerja, Contoh, dan Keamanan Pengguna

By | 14 October 2025

Apa Itu Cookie di PHP?

Cookie di PHP adalah file kecil yang disimpan di browser pengguna untuk menyimpan informasi sementara, seperti username, preferensi tema, atau status login. Berbeda dengan session yang disimpan di server, cookie disimpan di sisi klien (browser).

Dengan cookie, website dapat mengingat pengguna bahkan setelah browser ditutup dan dibuka kembali — selama masa berlaku cookie belum habis.

Cara Kerja Cookie di PHP

Berikut alur sederhana bagaimana cookie bekerja:

  1. Server mengirimkan data cookie ke browser.

  2. Browser menyimpan cookie tersebut di lokal (misalnya: C:\Users\<nama>\AppData\Local\Google\Chrome\User Data).

  3. Setiap kali pengguna mengunjungi halaman yang sama, browser mengirimkan cookie itu kembali ke server.

  4. Server dapat membaca cookie tersebut untuk mengenali pengguna.

Membuat dan Mengatur Cookie di PHP

PHP menyediakan fungsi setcookie() untuk membuat cookie.

Contoh Sederhana:

<?php
// set cookie yang berlaku selama 1 jam
setcookie("username", "Arvian", time() + 3600, "/");
echo "Cookie berhasil dibuat!";
?>

Penjelasan parameter:

  • "username" → nama cookie

  • "Arvian" → nilai cookie

  • time() + 3600 → masa berlaku (1 jam)

  • "/" → path berlaku di seluruh website

Membaca Cookie di PHP

Untuk membaca cookie yang sudah diset:

<?php
if (isset($_COOKIE['username'])) {
    echo "Selamat datang, " . $_COOKIE['username'];
} else {
    echo "Cookie belum diset.";
}
?>

Menghapus Cookie di PHP

Menghapus cookie dilakukan dengan mengatur waktu kadaluarsa ke masa lalu:

<?php
setcookie("username", "", time() - 3600, "/");
echo "Cookie berhasil dihapus!";
?>

Contoh Login Menggunakan Cookie

Cookie sering digunakan untuk fitur “Remember Me” di halaman login.

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // contoh sederhana (harusnya gunakan hashing)
    if ($username == 'admin' && $password == '12345') {
        if (isset($_POST['remember'])) {
            setcookie("username", $username, time() + (86400 * 7), "/"); // berlaku 7 hari
        }
        header("Location: dashboard.php");
    } else {
        echo "Login gagal!";
    }
}
?>
<form method="post">
  Username: <input type="text" name="username"><br>
  Password: <input type="password" name="password"><br>
  <label><input type="checkbox" name="remember"> Remember Me</label><br>
  <button type="submit">Login</button>
</form>

Keamanan Cookie

Walaupun berguna, cookie juga bisa menjadi celah keamanan jika tidak dijaga dengan benar. Berikut beberapa praktik aman:

a. Gunakan httponly dan secure flag

Mencegah cookie dibaca oleh JavaScript (untuk menghindari XSS):

<?php
setcookie("username", "Arvian", time() + 3600, "/", "", true, true);
?>

Parameter true, true artinya:

  • secure = hanya dikirim lewat HTTPS

  • httponly = tidak bisa diakses lewat JavaScript

b. Hindari Menyimpan Data Sensitif

Jangan pernah menyimpan password, token, atau informasi penting di cookie.

c. Gunakan Enkripsi

Jika harus menyimpan data penting (misalnya user ID), gunakan enkripsi sederhana:

<?php
$user_id = 123;
$encrypted = base64_encode($user_id);
setcookie("user_id", $encrypted, time() + 3600, "/");
?>

Dan untuk membacanya:

<?php
$user_id = base64_decode($_COOKIE['user_id']);
?>

Perbedaan Cookie dan Session

Fitur Cookie Session
Lokasi Penyimpanan Browser (klien) Server
Keamanan Lebih rentan Lebih aman
Durasi Bisa bertahan lama Hanya selama sesi aktif
Ukuran Maksimum ±4KB per domain Tidak terbatas (tergantung server)

Kesimpulan

Cookie di PHP membantu kita mengenali pengguna antar sesi dan menyimpan preferensi pengguna secara berkelanjutan. Namun, karena disimpan di browser, cookie harus digunakan dengan hati-hati dan diamankan menggunakan httponly, secure, serta tidak menyimpan data sensitif.

Category: PHP