Dalam dunia pengembangan web, pengelolaan cookie memegang peranan sangat penting dalam menjaga keamanan data pengguna. Salah satu kesalahan paling umum yang dilakukan oleh pengembang adalah tidak mengaktifkan flag Secure pada cookie. Padahal, flag ini berfungsi untuk memastikan bahwa cookie hanya dikirim melalui koneksi yang terenkripsi (HTTPS), sehingga data sensitif yang tersimpan dalam cookie tidak mudah diakses oleh pihak yang tidak berwenang.
Cookie adalah data kecil yang disimpan oleh browser untuk menyimpan informasi tertentu mengenai penggunaan situs web oleh pengguna. Secure cookie adalah cookie yang memiliki flag Secure. Jika flag ini tidak diaktifkan, cookie dapat terkirim melalui protokol HTTP biasa yang tidak terenkripsi, sehingga sangat rentan terhadap penyadapan (sniffing) dan serangan man-in-the-middle.
Secure hanya akan dikirim oleh browser jika permintaan dilakukan melalui protokol HTTPS.
Secure pada cookie.Secure.Secure saat melakukan set cookie.
Untuk meningkatkan keamanan cookies yang dikirimkan oleh aplikasi, pengembang perlu memastikan bahwa setiap cookie kritikal, terutama yang berkaitan dengan authentication atau session management, memiliki flag Secure. Dengan demikian, cookies tersebut hanya akan dikirim jika koneksi dilakukan melalui protokol HTTPS.
setcookie("nama_cookie", "nilai", [
"secure" => true, // Cookie hanya dikirim melalui HTTPS
"httponly" => true, // Tambahan, agar cookie tidak bisa diakses lewat JS
"path" => "/",
"samesite" => "Lax"
]);
Pastikan bahwa aplikasi Anda sudah berjalan dengan HTTPS sebelum mengaktifkan opsi ini.
document.cookie = "nama_cookie=nilai; Secure; Path=/; SameSite=Lax";
Namun, sebaiknya hindari penyetelan cookie penting langsung dari sisi klien. Gunakan penyetelan dari server jika memungkinkan.
res.cookie("nama_cookie", "nilai", {
secure: true, // Cookie hanya terkirim melalui HTTPS
httpOnly: true,
sameSite: "lax"
});
Misalnya, seorang user login ke situs web menggunakan koneksi Wi-Fi publik yang belum terenkripsi. Situs web tersebut menyimpan session id di cookie tapi tidak mengaktifkan flag Secure. Attacker di jaringan yang sama bisa dengan mudah melakukan sniffing terhadap trafik HTTP dan mendapatkan session id korban. Setelah itu, attacker bisa mengakses akun korban tanpa login.
Anda dapat memeriksa apakah cookie sudah memakai flag Secure melalui developer tools browser:
Tidak mengaktifkan flag Secure pada cookie adalah kesalahan mendasar namun berdampak besar terhadap keamanan aplikasi web. Untuk itu, pastikan setiap pengembang terbiasa menerapkan flag Secure pada setiap cookie yang digunakan, terutama untuk session dan autentikasi. Langkah sederhana ini akan sangat membantu menjaga integritas dan kerahasiaan data pengguna di tengah ancaman keamanan siber yang semakin berkembang.