Penjana JWT
Jana JSON Web Token bertandatangan dengan pengepala, muatan dan kunci tersuai. Menyokong HS256, RS256, ES256.
Apakah JWT?
JWT (JSON Web Token, RFC 7519) ialah standard terbuka untuk menghantar maklumat secara selamat sebagai objek JSON padat. Terdiri daripada tiga bahagian dipisahkan titik: Header.Payload.Signature.
Apakah kegunaan umum JWT?
JWT digunakan secara meluas untuk pengesahan (single sign-on), kebenaran API, dan pertukaran maklumat selamat. Setelah log masuk, pelayan mengeluarkan JWT yang disertakan klien dalam permintaan seterusnya.
Bagaimana memilih antara HS256, RS256, dan ES256?
HS256 menggunakan rahsia berkongsi dan paling pantas, sesuai untuk perkhidmatan tunggal. RS256 menggunakan pasangan kunci RSA, lebih baik untuk seni bina pelbagai perkhidmatan. ES256 menggunakan kunci elliptic curve dengan tandatangan lebih pendek dan keselamatan tinggi.
Apakah claims JWT?
Claims ialah pernyataan dalam muatan. Claims berdaftar termasuk iss (pengeluar), sub (subjek), exp (tamat tempoh), aud (audiens). Claims awam boleh didaftarkan di IANA. Claims peribadi ialah medan tersuai yang dipersetujui antara pihak.
Bagaimana mengesahkan JWT?
Decode header untuk mendapatkan algoritma, kemudian gunakan kunci yang sesuai (rahsia berkongsi untuk HMAC, kunci awam untuk RSA/ECDSA) untuk mengesahkan tandatangan. Semak juga exp, iss, dan aud.
Adakah selamat menjana JWT dalam pelayar?
Ya, alat ini menggunakan Web Crypto API. Kunci dan token anda tidak meninggalkan pelayar. Tiada data dihantar ke mana-mana pelayan.
Apakah perbezaan antara encoding dan signing?
Encoding (Base64) hanya menukar data ke format boleh dihantar dan boleh diterbalikkan oleh sesiapa sahaja. Signing mencipta hash kriptografi yang membuktikan token tidak diubah suai.
Bolehkah JWT disulitkan?
Ya, JWE (JSON Web Encryption) menyulitkan kandungan muatan. JWT standard (JWS) hanya menjamin integriti, tetapi muatan boleh dibaca oleh sesiapa yang mempunyai token.
Apakah amalan terbaik keselamatan JWT?
Sentiasa tetapkan masa tamat tempoh yang pendek. Gunakan rahsia kuat dan rawak untuk HMAC. Simpan kunci peribadi dengan selamat. Jangan letakkan data sensitif dalam muatan. Gunakan HTTPS dalam pengeluaran.
Bagaimana JWT dibandingkan dengan pengesahan berasaskan sesi?
JWT bersifat stateless — pelayan tidak menyimpan data sesi, ideal untuk perkhidmatan mikro dan senario lintas domain. Sesi memerlukan storan pelayan tetapi membenarkan pembatalan serta-merta.
Adakah JWT sesuai untuk log keluar dan pengurusan sesi?
JWT bersifat stateless oleh reka bentuk, jadi log keluar memerlukan mekanisme tambahan seperti senarai sekatan atau token berumur pendek dengan token muat semula. Gunakan token akses berumur pendek (contohnya 15 minit).
Bagaimana pola token muat semula berfungsi dengan JWT?
Gunakan token akses berumur pendek (JWT) untuk panggilan API dan token muat semula berumur lebih panjang untuk mendapatkan token akses baru. Apabila token akses tamat, klien menghantar token muat semula untuk mendapatkan JWT baru.
Apakah algoritma "none"?
Algoritma "none" bermaksud JWT tidak ditandatangani. Hanya gunakan untuk ujian. Banyak pustaka menyahaktifkannya secara lalai demi keselamatan.
Adakah terdapat had saiz JWT?
JWT tidak mempunyai had saiz tetap, tetapi kerana dihantar dalam header HTTP, ia harus di bawah 4KB. Pastikan muatan seminimum mungkin.