Cookie Security — Security

Memahami Cookie dan Keamanannya Cookie adalah potongan kecil data yang disimpan di browser dan dikirim kembali ke server di setiap request. Cookie digunakan…

Memahami Cookie dan Keamanannya

Cookie adalah potongan kecil data yang disimpan di browser dan dikirim kembali ke server di setiap request. Cookie digunakan untuk session management, personalisasi, dan tracking. Tanpa konfigurasi yang benar, cookie bisa menjadi celah keamanan.

Atribut Keamanan Cookie

1. HttpOnly

Mencegah JavaScript mengakses cookie. Ini melindungi dari serangan XSS yang mencoba mencuri cookie.

// Tanpa HttpOnly — rentan XSS
Set-Cookie: sessionId=abc123

// Dengan HttpOnly — aman dari JavaScript
Set-Cookie: sessionId=abc123; HttpOnly

// JavaScript tidak bisa membaca cookie HttpOnly
document.cookie; // sessionId tidak akan muncul di sini

2. Secure

Cookie hanya dikirim melalui koneksi HTTPS. Mencegah cookie dicuri melalui network sniffing.

Set-Cookie: sessionId=abc123; HttpOnly; Secure

3. SameSite

Mengontrol kapan cookie dikirim dalam cross-site request. Ini adalah proteksi utama terhadap CSRF:

Set-Cookie: sessionId=abc123; HttpOnly; Secure; SameSite=Strict

Cookie Prefix

Browser modern mendukung cookie prefix untuk keamanan tambahan:

// __Secure- prefix: cookie harus memiliki flag Secure
Set-Cookie: __Secure-sessionId=abc123; Secure; HttpOnly

// __Host- prefix: harus Secure, tanpa Domain, Path harus /
Set-Cookie: __Host-sessionId=abc123; Secure; HttpOnly; Path=/

Konfigurasi Cookie di Laravel

// config/session.php
return [
    "cookie" => env("SESSION_COOKIE", "app_session"),
    "secure" => env("SESSION_SECURE_COOKIE", true),
    "http_only" => true,
    "same_site" => "lax",
];

Checklist Cookie Security

Yang akan kamu pelajari