Sekedar saran: akan lebih baik untuk menambahkan beberapa informasi tentang masalah keamanan dalam metode penyimpanan JWT yang berbeda di sisi klien (cookie/localStorage) - XSS, CSRF, dll.
@sarneeh terima kasih telah membuka masalah ini. 👍
Jika Anda punya waktu untuk membuat Permintaan Tarik, silakan lakukan! (_Anda memiliki akses tulis ke repositori ini_)
Masalah keamanan yang berlaku untuk JWT sama dengan skema token lainnya.
Jika pengguna jahat dapat menjalankan serangan XSS pada domain, mereka akan dapat memperoleh JWT dan menggunakannya untuk menyamar sebagai pengguna terlepas dari cara penyimpanannya di klien.
JS berbahaya dapat membaca dan membocorkan cookie dan penyimpanan lokal dengan mudah.
Kami harus memberi tahu orang yang menggunakan JWT bahwa mereka tidak melindungi dari serangan OWASP dan hanya merupakan cara _nyaman_ untuk mentransmisikan klaim/data yang ditandatangani. 📝
@nelsonic
Masalah keamanan yang berlaku untuk JWT sama dengan skema token lainnya.
Jika pengguna jahat dapat menjalankan serangan XSS pada domain, mereka akan dapat memperoleh JWT dan menggunakannya untuk menyamar sebagai pengguna terlepas dari cara penyimpanannya di klien.
JS berbahaya dapat membaca dan membocorkan cookie dan penyimpanan lokal dengan mudah.
Saya setuju sebagian. Anda memiliki sesuatu seperti cookie httpOnly
dan secure
yang mencegah penyerang memperoleh JWT Anda. Tetapi saya sepenuhnya setuju bahwa jika Anda terbuka terhadap serangan XSS, ini tidak melindungi Anda dari apa pun karena seseorang dapat melakukan hal-hal atas nama pengguna (tidak mencuri token, tetapi menyuntikkan skrip berbahaya).
Jadi saya kira pada akhirnya, tidak masalah jika Anda menggunakan localStorage
atau cookie
- jika Anda terbuka terhadap serangan OWASP - Anda kacau. Tetapi jika Anda terlindungi darinya - Anda harus aman dengan kedua metode tersebut.
Saya ingin menyiapkan beberapa PR tetapi saya sulit tepat waktu sekarang dan akan gratis hanya dalam 1-2 bulan ke depan. Jika seseorang tidak akan berlari lebih cepat dari saya, saya akan menyiapkan beberapa PR
@sarneeh terima kasih telah membuka masalah ini.
Jika Anda punya waktu untuk membuat Permintaan Tarik, silakan lakukan! (_Anda memiliki akses tulis ke repositori ini_)Masalah keamanan yang berlaku untuk JWT sama dengan skema token lainnya.
Jika pengguna jahat dapat menjalankan serangan XSS pada domain, mereka akan dapat memperoleh JWT dan menggunakannya untuk menyamar sebagai pengguna terlepas dari cara penyimpanannya di klien.
JS berbahaya dapat membaca dan membocorkan cookie dan penyimpanan lokal dengan mudah.Kami harus memberi tahu orang yang menggunakan JWT bahwa mereka tidak melindungi dari serangan OWASP dan hanya merupakan cara _nyaman_ untuk mentransmisikan klaim/data yang ditandatangani.
Seperti yang dikatakan di atas cookie dapat memiliki opsi httpOnly.
Menurut artikel ini, sangat tidak aman menggunakan penyimpanan lokal daripada cookie httponly
Meskipun saya merasa telah menjelaskan kepada diri saya sendiri bahwa Anda tidak boleh menyimpan informasi sensitif di penyimpanan lokal di bagian sebelumnya, saya merasa perlu untuk secara khusus memanggil Token Web JSON (JWT).
Pelanggar keamanan terbesar yang saya lihat hari ini adalah mereka yang menyimpan JWT (data sesi) di penyimpanan lokal. Banyak orang tidak menyadari bahwa JWT pada dasarnya sama dengan nama pengguna/kata sandi.
Jika penyerang bisa mendapatkan salinan JWT Anda, mereka dapat membuat permintaan ke situs web atas nama Anda dan Anda tidak akan pernah tahu. Perlakukan JWT Anda seperti Anda menggunakan nomor kartu kredit atau kata sandi: jangan pernah menyimpannya di penyimpanan lokal.
Komentar yang paling membantu
@nelsonic
Saya setuju sebagian. Anda memiliki sesuatu seperti cookie
httpOnly
dansecure
yang mencegah penyerang memperoleh JWT Anda. Tetapi saya sepenuhnya setuju bahwa jika Anda terbuka terhadap serangan XSS, ini tidak melindungi Anda dari apa pun karena seseorang dapat melakukan hal-hal atas nama pengguna (tidak mencuri token, tetapi menyuntikkan skrip berbahaya).Jadi saya kira pada akhirnya, tidak masalah jika Anda menggunakan
localStorage
ataucookie
- jika Anda terbuka terhadap serangan OWASP - Anda kacau. Tetapi jika Anda terlindungi darinya - Anda harus aman dengan kedua metode tersebut.Saya ingin menyiapkan beberapa PR tetapi saya sulit tepat waktu sekarang dan akan gratis hanya dalam 1-2 bulan ke depan. Jika seseorang tidak akan berlari lebih cepat dari saya, saya akan menyiapkan beberapa PR