Sesi login dan token: timeout, logout, dan pencabutan
Setelah login, sesi atau token memungkinkan permintaan berikutnya dikenali. Tim perlu menentukan masa berlaku, pembaruan, autentikasi ulang, dan cara menghentikan akses.
Di halaman ini
Mengapa sesi perlu diperiksa setelah login?
Sesi menghubungkan permintaan berikutnya dengan proses masuk yang sudah dilakukan. Jika pengenal sesi atau bearer token dicuri, pihak lain dapat menggunakannya selama sistem masih menerima kredensial tersebut. Keberhasilan MFA saat login tidak membuat token yang sudah terbit kebal pencurian.
Cookie adalah cara browser menyimpan dan mengirim data; sesi adalah konteks akses yang dikelola aplikasi. JWT merupakan format token. Ketiganya bukan pilihan yang saling menggantikan secara langsung.
Bedakan batas waktu dan pencabutan
| Mekanisme | Pertanyaan yang dijawab |
|---|---|
| Idle timeout | Berapa lama sesi boleh diam tanpa aktivitas? |
| Absolute timeout | Kapan sesi berakhir meskipun tetap dipakai? |
| Autentikasi ulang | Kapan identitas perlu diperiksa kembali? |
| Pencabutan | Bagaimana akses dihentikan sebelum masa berlaku selesai? |
Tetapkan batas sesuai risiko, kemampuan sistem, dan standar yang memang diterapkan. Angka pada satu tingkat jaminan NIST bukan batas universal bagi semua website Indonesia. Penegakan batas harus berlangsung di server, bukan hanya penghitung waktu pada layar.
Contoh: keluar dari portal pelanggan
Contoh fiktif: pengguna masuk dari laptop bersama, lalu memilih keluar. Halaman kembali ke formulir login, tetapi permintaan dengan sesi lama masih diterima server. Perubahan tampilan tersebut belum membuktikan logout berhasil.
Dengan akun uji, catat pengenal sesi secara aman sebelum logout. Pemeriksa berwenang memastikan permintaan berikutnya dengan sesi lama ditolak, lalu login baru tetap berfungsi. Jangan menyalin nilai sesi ke laporan; simpan hasil, waktu, dan pengenal kasus uji saja.
Periksa cookie dan pembaruan sesi
Untuk sesi berbasis cookie, gunakan HTTPS, atribut Secure dan HttpOnly, serta lingkup domain/path yang sesuai. Tentukan SameSite dengan mempertimbangkan alur lintas situs seperti SSO. HttpOnly membatasi pembacaan cookie oleh skrip; ia tidak menghilangkan XSS atau menggantikan perlindungan CSRF.
Ganti pengenal sesi setelah login dan perubahan tingkat kewenangan. Sesi lama tidak boleh tetap memberikan hak yang sudah berubah. Tindakan penting, seperti mengganti faktor autentikasi, dapat membutuhkan autentikasi ulang.
Access token dan refresh token juga perlu dihentikan
Mencabut refresh token menghentikan penerbitan token berikutnya sesuai implementasi, tetapi access token yang sudah terbit mungkin tetap berlaku sampai kedaluwarsa atau dicabut melalui mekanisme lain. Dokumentasikan perilaku sebenarnya. Perlindungan refresh token dapat menggunakan rotasi atau pengikatan ke pengirim sesuai protokol.
Untuk SSO, periksa sesi aplikasi dan penyedia identitas secara terpisah. Sertakan skenario logout satu perangkat, seluruh perangkat, akun dinonaktifkan, dan pemulihan akun. Catat akses mana yang langsung berhenti, mana yang masih berlaku, dan alasan batas tersebut dapat diterima.
Sumber rujukan
- OWASP — Session Management Cheat Sheet ↗OWASP Foundation; rujukan teknis · Cookies; renewal after privilege changes; expiration; logout; session lifecycle
- NIST SP 800-63B-4 — Authentication and Authenticator Management ↗NIST; rujukan praktik teknis, bukan hukum Indonesia · Bagian 5: sesi, autentikasi ulang, federasi
- RFC 9700 — Best Current Practice for OAuth 2.0 Security ↗IETF / RFC Editor; praktik keamanan protokol · Bagian 2.2 dan 4.14: perlindungan access/refresh token
Baca naskah lengkap untuk melihat syarat dan pengecualiannya. Sesuaikan dengan layanan dan bidang usaha Anda.
Perlu membahas kebutuhan tim Anda?
Ceritakan sistem yang dikelola dan kebutuhan pengamanan tim Anda.
Konsultasikan kebutuhan Anda