Untuk tujuan mengamankan REST API menggunakan JWT, menurut beberapa materi (seperti panduan ini dan pertanyaan ini ), JWT dapat disimpan di Penyimpanan lokal atau Cookie . Berdasarkan pemahaman saya:
- localStorage tunduk pada XSS dan umumnya tidak disarankan untuk menyimpan informasi sensitif di dalamnya.
- Dengan Cookies kita dapat menerapkan bendera "httpOnly" yang mengurangi risiko XSS. Namun jika kami membaca JWT dari Cookie di backend, kami akan dikenai CSRF.
Jadi berdasarkan premis di atas - akan lebih baik jika kita menyimpan JWT dalam Cookies. Pada setiap permintaan ke server, JWT akan dibaca dari Cookies dan ditambahkan di header Otorisasi menggunakan skema Bearer. Server kemudian dapat memverifikasi JWT di header permintaan (bukan membacanya dari cookie).
Apakah pemahaman saya benar? Jika ya, apakah pendekatan di atas memiliki masalah keamanan? Atau sebenarnya kita bisa lolos dengan menggunakan localStorage di tempat pertama?