Digital Transformation
HttpOnly Cookie (Atribut Cookie Anti-XSS)
TL;DR: HttpOnly adalah flag pada cookie yang mencegah JavaScript di browser membaca isi cookie melalui
document.cookie. Dengan HttpOnly aktif, cookie sesi tetap aman walaupun halaman berhasil di-inject skrip jahat (XSS). Atribut ini wajib di setiap cookie sesi, sering dilewatkan saat tim memakai library auth lama atau implementasi custom.
Apa itu HttpOnly Cookie?
HttpOnly adalah atribut yang ditambahkan pada header Set-Cookie agar cookie hanya dapat dibaca dan dikirim oleh browser pada request HTTP, bukan oleh skrip klien. Tanpa HttpOnly, cookie bisa diambil dengan satu baris JavaScript dan dikirim ke server attacker. Atribut ini bekerja paling efektif saat dipasang berdampingan dengan SameSite dan [CSP](/glosarium/csp-content-security-policy) sebagai bagian dari cookie security stack modern.
HttpOnly vs Secure vs SameSite
| Atribut | Tujuan |
|---|---|
HttpOnly | Tutup akses dari JavaScript |
Secure | Hanya kirim cookie via HTTPS |
SameSite | Atur pengiriman lintas situs |
Ketiganya melindungi vektor serangan berbeda dan idealnya selalu diaktifkan bersama untuk cookie sesi.
Kenapa Penting?
Insiden pencurian sesi via XSS masih jadi top OWASP setiap tahun. Saat audit klien, Vito Atmo beberapa kali menemukan cookie sesi tanpa HttpOnly di proyek lawas yang dipindahkan tanpa modernisasi. Memasang HttpOnly tidak menambah biaya dan tidak merusak UX, tapi dampaknya besar: token sesi tidak bisa diekspos sekalipun ada celah XSS yang belum ketahuan.
Pertanyaan Umum
Apakah HttpOnly mencegah semua serangan XSS?
Tidak. HttpOnly hanya mencegah pencurian cookie via skrip. XSS tetap bisa melakukan aksi atas nama user lewat fetch request berbasis cookie.
Apakah aman menyimpan token JWT di cookie HttpOnly?
Lebih aman dibandingkan localStorage untuk token sensitif. Pasangkan dengan SameSite=Lax dan Secure agar perlindungan lengkap.
Istilah Terkait