# JWT Attack

Secara teori, token ini dapat berisi semua jenis data, tetapi paling umum digunakan untuk mengirim informasi ("claims") tentang pengguna sebagian bagian dari authentication, session handling, dan mekanisme access control.

Tidak seperti token session, semua data yang disimpan di client side dalam JWT itu sendiri. Hal ini menjadikan JWT pilihan populer untuk aplikasi yang sangat terdistribusi, tempat pengguna perlu berinteraksi dengan lancar dengan beberapa server backend.

JWT attack melibatkan pengguna yang mengirim JWT yang dimodifikasi ke server untuk mencapai tujuan jahat. Biasanya, tujuan ini adalah untuk melewati access control dan authentication dengan menyamar sebagai pengguna lain yang telah diauthentication.

### Dampak dari JWT attacks?

Dampak serangan JWT biasanya parah. Jika penyerang dapat membuat token mereka sendiri yang valid dengan nilai yang berubah-ubah, mereka mungkin dapat meningkatkan hak akses mereka sendiri atau menyamar sebagai pengguna lain, dan mengambil alih kendali penuh atas akun mereka.

### Mengatasi JWT attacks?

* Gunakan up-to-date library untuk menangani JWT dan pastikan developer memahami sepenuhnya cara kerjanya, beserta implikasi keamanannya. Library modern mempersulit untuk tidak sengaja menerapkannya secara tidak aman, tetapi ini tidak sepenuhnya aman karena fleksibilitas bawaan dari spesifikasi terkait.
* Pastikan melakukan verifikasi signature yang kuat pada setiap JWT yang diterima, dan memperhitungkan kasus-kasus ekstrem seperti JWT yang di signature menggunakan algoritma yang tidak terduga.
* Terapkan whitelist yang strict dari host yang diizinkan untuk header `jku` .
* Pastikan untuk tidak rentan erhadap traversal atau SQL injection melalui parameter header `kid` .
