Digital Transformation
SameSite Cookie
TL;DR: SameSite adalah atribut pada cookie yang menentukan apakah browser mengirim cookie ketika permintaan berasal dari domain berbeda. Nilainya ada tiga: Strict, Lax, dan None. Atribut ini penting karena membatasi cookie agar tidak ikut terbawa di request lintas situs, sehingga mengurangi risiko serangan Cross-Site Request Forgery.
Apa itu SameSite Cookie?
SameSite adalah salah satu atribut yang bisa dipasang pada cookie lewat header Set-Cookie. Anggap cookie sebagai kartu identitas yang dititipkan situs ke browser. Atribut SameSite mengatur kapan kartu itu boleh ditunjukkan: hanya saat pengguna berada di situs yang sama, atau juga saat datang dari tautan situs lain. Pengaturan ini bekerja berdampingan dengan koneksi aman lewat HTTPS untuk menjaga sesi pengguna tetap aman.
Tiga Nilai SameSite
| Nilai | Perilaku | Cocok untuk |
|---|---|---|
Strict | Cookie hanya dikirim untuk navigasi di dalam situs yang sama | Sesi login area sensitif (dashboard, pembayaran) |
Lax | Cookie dikirim saat navigasi top-level dari situs lain, tapi tidak untuk request tersembunyi | Default modern, cocok untuk mayoritas kasus |
None | Cookie selalu dikirim lintas situs, wajib disertai Secure | Embed pihak ketiga, SSO lintas domain |
Sejak pertengahan 2020, mayoritas browser modern menjadikan Lax sebagai default ketika atribut SameSite tidak ditulis. Detail perilaku ini dijelaskan di dokumentasi MDN tentang SameSite.
Kenapa Penting?
Bagi pemilik website bisnis di Indonesia, SameSite adalah lapisan pertahanan murah yang sering terlewat. Dalam beberapa audit keamanan yang saya lakukan untuk klien, banyak cookie sesi masih dibiarkan tanpa atribut SameSite, sehingga rawan dimanfaatkan untuk request berbahaya tanpa sepengetahuan pengguna. Menyetel Lax atau Strict pada cookie sesi adalah perbaikan satu baris yang langsung menurunkan permukaan serangan.
Pertanyaan Umum
Apakah SameSite cukup untuk mencegah CSRF?
SameSite mengurangi risiko secara signifikan, tapi bukan satu-satunya pertahanan. Praktik yang lebih kuat tetap menggabungkannya dengan token anti-CSRF dan validasi origin di sisi server.
Apa beda Lax dan Strict dalam praktik?
Dengan Strict, pengguna yang mengklik tautan dari email menuju dashboard Anda bisa terlihat seolah belum login, karena cookie tidak ikut terkirim. Lax mengizinkan cookie pada navigasi seperti itu, jadi lebih ramah pengalaman pengguna untuk kebanyakan situs.
Istilah Terkait