Hentikan Penggunaan JWT untuk Otentikasi

Judul asli: Stop Using JWTs

Mengapa Ini Penting

Penjelasan ini penting bagi developer yang memilih teknologi autentikasi untuk aplikasi web mereka dan memahami kelemahan praktis dari praktik industri yang umum digunakan.

Developer Sam Sch dalam postingan GitHub Gist merekomenendasi menghentikan penggunaan JWT untuk menjaga sesi pengguna tetap login. JWT dirancang untuk token berumur pendek (~5 menit), bukan untuk sesi jangka panjang, dan cookie session reguler lebih aman serta efisien.

Postingan tersebut menyatakan JWT (JSON Web Tokens) tidak dirancang untuk menjaga pengguna tetap login dan memiliki beberapa kelemahan fundamental. Pertama, spesifikasi JWT dirancang khusus untuk token berumur sangat pendek sekitar 5 menit atau kurang, sementara sesi memerlukan masa berlaku lebih lama. Kedua, autentikasi 'stateless' tidak dapat diimplementasikan secara aman; diperlukan penyimpanan data untuk menangani token dengan aman, sehingga menggunakan cookie session reguler lebih efisien. Ketiga, spesifikasi JWT sendiri tidak dipercaya oleh para ahli keamanan karena desain aslinya memungkinkan pembuatan token palsu. Sam Sch mereferensikan artikel dari cryto.net yang menjelaskan masalah spesifik penggunaan JWT untuk sesi. Postingan juga merekomendasikan menghindari menyimpan kredensial autentikasi di localStorage atau sessionStorage. Untuk use case legitimate seperti Single Sign On antar server, JWT dapat diterima, namun developer disarankan menggunakan alternatif yang lebih aman seperti PASETO.

Sumber

gist.github.com — Baca artikel asli →