JWT atau session cookie? Memilih cara menyimpan login yang tepat
Untuk kebanyakan aplikasi web yang diakses lewat browser, session cookie dengan atribut HttpOnly dan Secure adalah pilihan yang lebih sederhana dan aman. JWT cocok untuk komunikasi antar layanan atau API publik, tetapi sulit dicabut sebelum kedaluwarsa. Pilih berdasarkan kebutuhan, bukan tren.
Apa bedanya JWT dan session cookie?
Session cookie menyimpan ID acak di browser, sedangkan data sesinya tersimpan di server. JWT (JSON Web Token) membawa data pengguna di dalam token yang ditandatangani sehingga server tidak perlu menyimpan apa pun.
- Session: mudah dicabut, cukup hapus sesi di server.
- JWT: tanpa status, mudah diskalakan antar layanan.
- Session: butuh penyimpanan bersama jika server berjumlah banyak.
- JWT: sulit dicabut sebelum waktunya habis kecuali memakai daftar cekal.
Mana yang lebih aman untuk aplikasi browser?
Cookie dengan atribut HttpOnly tidak dapat dibaca oleh JavaScript, sehingga lebih tahan terhadap pencurian lewat XSS. Atribut Secure memaksa pengiriman lewat HTTPS dan SameSite membantu menahan serangan CSRF.
Jika JWT disimpan di localStorage, skrip jahat dari celah XSS dapat membacanya. Itulah sebabnya banyak panduan keamanan, termasuk OWASP, menyarankan penyimpanan token di cookie HttpOnly.
Token berumur pendek
Jika memakai JWT, buat masa berlakunya pendek, misalnya 15 menit, dan gunakan refresh token yang bisa dicabut.
Kapan JWT tepat dipakai?
- API yang dipanggil aplikasi seluler atau layanan lain tanpa browser.
- Komunikasi antar layanan mikro dalam jaringan internal.
- Tautan sekali pakai seperti verifikasi surel atau reset kata sandi dengan masa berlaku singkat.
- Sistem masuk tunggal (SSO) berbasis OpenID Connect.
Ringkasan dan langkah berikutnya
Mulailah dari session cookie jika aplikasi Anda hanya diakses lewat browser. Pindah ke JWT hanya ketika ada kebutuhan nyata, bukan karena terdengar modern.
- Atribut cookie wajib: HttpOnly, Secure, SameSite.
- Masa berlaku access token yang disarankan: 5 sampai 15 menit.
- Rujukan: OWASP Session Management Cheat Sheet di cheatsheetseries.owasp.org.
Topik terkait yang bisa Anda baca berikutnya: autentikasi login aplikasi web, hak akses pengguna, OWASP Top 10, CORS dijelaskan sederhana, dan jasa pembuatan aplikasi.
Kesalahan yang perlu dihindari
Jangan menaruh data sensitif di payload JWT karena isinya hanya dikodekan, bukan dienkripsi. Jangan pula memakai kunci penandatangan yang lemah atau menerima algoritma none. Verifikasi selalu tanda tangan dan masa berlaku di server.
Pertanyaan singkat seputar topik ini
Mana yang lebih aman untuk aplikasi browser?
Session cookie dengan atribut HttpOnly, Secure, dan SameSite umumnya lebih sederhana dan lebih tahan terhadap pencurian lewat XSS dibanding token di localStorage.
Kapan JWT tepat dipakai?
Untuk API yang diakses aplikasi seluler atau antar layanan, serta tautan sekali pakai dengan masa berlaku singkat.
Pertanyaan yang sering muncul
Ya, tanpa komitmen. Kami balas dalam 1×24 jam kerja.
Tentang Tim AnabisolutionsStudio digital dari Pekanbaru yang mengerjakan website, aplikasi, dan sistem untuk klien di Riau dan sekitarnya.
Anabisolutions

