Flag cookie Secure, HttpOnly, dan SameSite
Cookie sesi adalah target utama. Tiga atribut — Secure, HttpOnly, dan SameSite — menentukan apakah penyerang bisa mencuri atau menyalahgunakannya. Flag yang hilang langsung berujung pada session hijacking dan CSRF.
Apa itu
Secure mengirim cookie hanya lewat HTTPS. HttpOnly menyembunyikannya dari JavaScript (document.cookie). SameSite mengatur apakah cookie dikirim pada request lintas-situs.
Bersama-sama ketiganya mengecilkan permukaan serangan: penyerang tidak bisa membaca cookie lewat script yang disisipkan, tidak bisa menyadapnya lewat HTTP, dan tidak bisa menumpanginya dari situs lain.
Kenapa penting
Tanpa HttpOnly, bug XSS apa pun bisa membaca cookie sesi dan menyerahkan sesi yang sedang login ke penyerang. Tanpa Secure, cookie bocor lewat request HTTP biasa apa pun.
Tanpa SameSite, browser melampirkan cookie ke request lintas-situs, dan itulah mekanisme yang diandalkan serangan CSRF.
Cara memperbaiki
Kebanyakan framework menyediakan ini sebagai opsi saat kamu menyetel cookie.
res.cookie("session", token, {
secure: true,
httpOnly: true,
sameSite: "lax", // or "strict" for maximum protection
path: "/",
});Menamai cookie __Host- memaksa browser mewajibkan Secure, Path=/, dan tanpa Domain — baseline yang kuat dan menegakkan dirinya sendiri untuk cookie sesi.
Kalau kamu benar-benar butuh cookie lintas-situs, SameSite=None hanya dihormati jika Secure juga disetel; kalau tidak, browser modern akan membuang cookie-nya.
FAQ
Lax atau Strict untuk SameSite?
Lax adalah default aman yang tetap mengizinkan navigasi tingkat atas. Strict lebih ketat tapi bisa merusak alur di mana pengguna datang dari tautan eksternal sambil berharap tetap login.
Apakah flag ini menghentikan XSS?
HttpOnly membatasi dampak XSS dengan menyembunyikan cookie, tapi tidak mencegah XSS. Padukan dengan Content-Security-Policy yang kuat.
Apakah aplikasimu terpengaruh?
AppSafe memeriksa ini dan puluhan masalah lain dalam satu pemindaian gratis.
Pindai aplikasiku gratisPanduan terkait
Content-Security-Policy (CSP): apa itu dan cara menambahkannya
Header yang mencegah script sisipan berjalan.
Kesalahan konfigurasi CORS: jebakan wildcard dan reflection
Izinkan setiap origin dan situs mana pun bisa membaca API-mu.
Kenapa situsmu butuh redirect HTTP→HTTPS
Jangan biarkan pintu yang tidak aman terbuka.