CSRF (Cross-Site Request Forgery) sudah lama jadi ancaman serius bagi website dan pengguna. Tapi sekarang ada pahlawan baru dalam dunia keamanan web: SameSite Cookie.

Apakah benar SameSite bisa jadi pelindung utama dari serangan CSRF? Atau hanya pelengkap saja? Yuk, kita bahas!


🍪 Apa Itu Cookie?

Sebelum ke SameSite, kita perlu tahu dulu apa itu cookie.

Cookie adalah file kecil yang disimpan di browser. Biasanya digunakan untuk:

  • Menyimpan informasi login (session)

  • Mengingat preferensi pengguna

  • Melacak aktivitas (seperti keranjang belanja)

Contoh: Saat kamu login ke situs bank, browser menyimpan cookie agar kamu tidak perlu login ulang saat pindah halaman.


💣 Hubungan Cookie dan CSRF

Masalahnya, browser secara otomatis mengirim cookie ke server, setiap kali ada permintaan ke domain itu—termasuk saat kamu klik link dari situs lain.

Inilah celah yang dimanfaatkan dalam serangan CSRF: penyerang membuat browser kamu mengirim permintaan (seperti transfer uang), dan browser ikut mengirim cookie login ke situs target.


🦸‍♂️ Masuklah: SameSite Cookie!

SameSite adalah aturan tambahan pada cookie yang mengontrol kapan cookie boleh dikirim oleh browser.

SameSite punya 3 nilai utama:

  1. SameSite=Strict
    Cookie hanya dikirim jika permintaan berasal dari domain yang sama.
    ➤ Paling aman, tapi bisa mengganggu pengalaman pengguna.

  2. 🔒 SameSite=Lax
    Cookie dikirim hanya untuk permintaan GET biasa (misalnya buka link), tapi tidak untuk form POST.
    ➤ Cukup aman, cocok untuk sebagian besar website.

  3. SameSite=None
    Cookie boleh dikirim lintas situs, tapi harus disertai Secure (HTTPS).
    ➤ Digunakan untuk kasus khusus, tapi tidak aman terhadap CSRF kalau tidak hati-hati.


🧠 Cara SameSite Melindungi dari CSRF

Dengan SameSite, browser jadi lebih pintar:

  • Jika kamu membuka situs penyerang yang mencoba mengirim form ke situs bank, browser tidak akan mengirim cookie login.

  • Karena tidak ada cookie, permintaan ditolak oleh server, dan serangan CSRF gagal.


🛠️ Cara Developer Mengaktifkannya

Cukup atur cookie seperti ini:

http
Set-Cookie: sessionid=abc123; SameSite=Strict; Secure

Atau jika pakai PHP:

php
setcookie("sessionid", "abc123", [
'samesite' => 'Strict',
'secure' => true,
'httponly' => true
]);

⚠️ Catatan Penting

  • SameSite itu pelindung tambahan, bukan pengganti CSRF Token.

  • Beberapa fitur login pihak ketiga (seperti Google Login) butuh SameSite=None.

  • Tidak semua browser lama mengenali SameSite (tapi sekarang mayoritas sudah mendukung).


✅ Kesimpulan

“SameSite” Cookie adalah alat yang sangat berguna untuk mencegah serangan CSRF, karena mengatur kapan cookie boleh dikirim. Tapi ingat:

  • Gunakan SameSite=Strict jika memungkinkan.

  • Untuk pengalaman pengguna yang seimbang, SameSite=Lax sudah cukup aman.

  • Jangan lupakan perlindungan lain seperti CSRF Token dan cek header Origin.

Jadi, apakah SameSite Cookie adalah pahlawan?
Ya, jika digunakan dengan tepat. 💪

Penulias : Muhammad Aditya Alkhawarizmi

Nim : 23156201023

jurusan : Sistem Komputer