Image by vectorpouch on Freepik
Token dalam pengembangan aplikasi dan website merupakan kode unik yang digunakan untuk mengidentifikasi pengguna dan memberikan otorisasi akses ke layanan atau sumber daya tertentu. Dalam artikel ini, kita akan membahas 2 jenis token, yaitu token akses dan token sesi. Sebelum membahas perbedaan kedua jenis token ini, mari kita memahami terlebih dahulu konsep dasar dari token dalam pengembangan aplikasi dan website.
Token dalam aplikasi adalah kode unik yang digunakan untuk mengidentifikasi pengguna dan memberikan otorisasi akses ke suatu aplikasi atau layanan tertentu. Token ini sering digunakan sebagai alternatif untuk mengirimkan informasi pengguna seperti nama pengguna dan password setiap kali pengguna melakukan permintaan ke server aplikasi. Dengan menggunakan token, aplikasi dapat memverifikasi identitas pengguna tanpa harus mengekspos informasi pengguna yang sensitif. Selain itu, token dalam aplikasi juga dapat digunakan untuk mengendalikan hak akses pengguna ke berbagai sumber daya dalam aplikasi, seperti API atau layanan web. Ada berbagai jenis token yang digunakan dalam aplikasi, seperti token akses, token sesi, dan token refresh. Di dalam artikel ini kita hanya akan membahas tentang token akses dan token sesi.
Token akses
Token akses adalah kode panjang yang berfungsi untuk memberikan otorisasi dan mengotentikasi pengguna dalam mengakses aplikasi atau layanan tertentu. Biasanya, token akses diberikan setelah pengguna berhasil login dan digunakan untuk mengakses sumber daya atau operasi di aplikasi yang membutuhkan izin akses. Dalam konteks web dan aplikasi, token akses lebih aman dan efektif digunakan sebagai alternatif untuk mengelola akses antar aplikasi dan servis daripada password dalam otentikasi koneksi API. Token akses umumnya memiliki waktu kedaluwarsa dan harus diperbarui secara teratur untuk menjaga keamanan aplikasi. Namun, token akses tidak cocok untuk otentikasi pengguna karena dapat rentan terhadap serangan hacker dan memiliki masa berlaku yang telah ditentukan. Sebaliknya, token sesi lebih cocok digunakan untuk mengotentikasi pengguna dalam aplikasi atau web.
Beberapa contoh kerentanan token akses meliputi:
- Man-in-the-middle (MITM) Attack: Serangan ini terjadi ketika seseorang berhasil mencuri token akses yang digunakan oleh pengguna untuk mengakses aplikasi atau layanan. Hacker dapat menyalin token akses dan menggunakannya untuk melakukan akses yang tidak sah.
- Cross-Site Scripting (XSS): Dalam serangan XSS, hacker menanamkan skrip berbahaya pada situs web yang memungkinkan mereka mencuri token akses pengguna.
- Cross-Site Request Forgery (CSRF): Serangan ini memanfaatkan sesi aktif pengguna untuk mengirim permintaan palsu ke situs web yang diakses oleh pengguna. Jika permintaan palsu berhasil, token akses dapat digunakan untuk mengakses aplikasi atau layanan secara tidak sah.
- Token Sniffing: Serangan ini terjadi ketika hacker berhasil mencuri token akses melalui jaringan yang tidak aman atau terhubung ke server yang rentan.
- Insecure Token Storage: Jika token akses disimpan dengan cara yang tidak aman, seperti dalam bentuk teks biasa di dalam database atau cookie yang tidak dienkripsi, maka hacker dapat dengan mudah mencurinya.
Token sesi
Token sesi adalah kode unik yang diberikan kepada pengguna setelah berhasil masuk ke situs web atau aplikasi. Fungsinya adalah untuk mengidentifikasi dan memvalidasi pengguna selama sesi aktif. Dengan menggunakan token sesi, situs atau aplikasi dapat memverifikasi bahwa pengguna yang mengakses informasi atau melakukan tindakan di dalamnya adalah pengguna yang sah dan bukan orang yang tidak berwenang.
Setiap kali pengguna melakukan aksi tertentu, seperti mengakses halaman atau melakukan transaksi, token sesi akan dikirimkan kembali ke server untuk memverifikasi identitas pengguna. Token sesi akan berakhir setelah periode waktu tertentu atau ketika pengguna keluar dari situs atau aplikasi. Karena pentingnya privasi dan keamanan pengguna di situs web atau aplikasi, penggunaan token sesi yang tepat sangatlah penting.
Terkait otentikasi aplikasi
Penggunaan token akses lebih disarankan dibandingkan dengan token sesi. Hal ini disebabkan oleh beberapa alasan, di antaranya adalah:
- Stabilitas dan Keamanan: Token akses lebih stabil dan memiliki masa kadaluarsa yang lebih panjang, sehingga lebih aman dan cocok untuk digunakan dalam jangka waktu yang lebih lama.
- Kinerja dan Skalabilitas: Penggunaan token akses lebih efisien untuk aplikasi yang membutuhkan kinerja dan skalabilitas yang baik karena hanya perlu diperiksa sekali saat autentikasi, tidak seperti token sesi yang harus diperiksa setiap kali pengguna mengakses aplikasi.
- Biaya: Karena token sesi sering berganti, maka membutuhkan biaya yang lebih besar untuk menghasilkan token baru dan memvalidasi token tersebut. Dalam situasi di mana traffic aplikasi sangat tinggi, biaya ini dapat meningkat secara signifikan.
Dengan demikian, penggunaan token akses akan memberikan keamanan yang lebih baik, kinerja yang lebih baik, dan biaya yang lebih rendah dibandingkan dengan token sesi. Namun, dalam situasi di mana aplikasi membutuhkan keamanan yang lebih tinggi, maka penggunaan token sesi dapat menjadi lapisan tambahan untuk memastikan pengguna tetap terautentikasi secara konsisten.