raatools/

JWT Dekóder

Illessze be a JWT-t a fejléc, tartalom és igények dekódolásához.

Mi az a JWT?

A JSON Web Token (JWT, kiejtése: \"jot\") egy tömör, URL-biztos tokénformátum, amelyet az RFC 7519 szabványosít. A JWT az iparági szabvány az autentikációs és engedélyezési információk felek közötti átadásához. Széles körben alkalmazzák egyszeri bejelentkezési (SSO) rendszerekben, OAuth 2.0 folyamatokban és API-autentikációban.

A JWT három, pontokkal elválasztott, Base64URL-kódolt részből áll: fejléc, hasznos adat és aláírás. A fejléc az aláírási algoritmust (pl. HS256, RS256) tartalmazza. A hasznos adat claims-eket tartalmaz – kulcs-értékpárokat olyan információkkal, mint a felhasználói azonosító, jogosultságok és lejárati idő. Az aláírás garantálja, hogy a token nem lett módosítva.

Általános JWT-claims-ek

  • sub: sub (Alany): Azonosítja a résztvevőt – általában felhasználói azonosító vagy e-mail-cím.
  • iat: iat (Kiállítás időpontja): Unix időbélyeg, amely jelzi, mikor lett a token létrehozva.
  • exp: exp (Lejárat): Unix időbélyeg, amely után a token már nem érvényes.
  • iss: iss (Kiállító): Azonosítja a token kiállítóját (pl. a hitelesítési szerverét).
  • aud: aud (Közönség): Azonosítja a token szándékolt fogadóját (pl. az API-t).

Az eszköz használata

Illessze be a JWT-t a beviteli mezőbe. Az eszköz azonnal dekódolja a fejlécet és a hasznos adatot, olvasható formában megjelenítve a claims-eket. A lejárati időpontokat ember által olvasható dátummá alakítja. Az eszköz ellenőrzi a token struktúráját is, és jelzi, ha a formátum érvénytelen.

Biztonságos-e a JWT-m itt beilleszteni?

Igen. Ez az eszköz a JWT-t teljes mértékben a böngészőjében dekódolja JavaScript segítségével. Semmilyen adat nem kerül el semmilyen szerverre. A JWT-ket azonban mindig érzékeny hitelesítési adatokként kell kezelni – soha ne osszon meg éles tokéneket nyilvánosan, ne illessze be chatüzenetekbe, és ne commit-olja verziókövető rendszerbe.

Hogyan működik a JWT-hitelesítés

Amikor egy felhasználó bejelentkezik, a szerver létrehoz egy JWT-t a felhasználó azonosítójával és jogosultságaival, aláírja egy titkos kulccsal, majd visszaküldi az ügyfélnek. Az ügyfél ezt a tokent az Authorization fejlécbe helyezi a következő API-kérések során. A szerver az aláírás ellenőrzésével győződik meg arról, hogy a token hiteles és nem módosított.

Ez a megközelítés állapotmentes – a szervernek nem kell munkamenet-adatokat tárolnia adatbázisban. Minden szükséges információ magában a tokenben van kódolva. Ez teszi a JWT-ket ideálissá elosztott rendszerekben, mikro-szolgáltatás-architektúrákban és kiszolgáló nélküli alkalmazásokban, ahol a megosztott állapot nehezen kezelhető.

Gyakori JWT-hibák

Érzékeny adatok (jelszavak, bankkártyaszámok) JWT-hasznos adatban való tárolása kritikus hiba. A hasznos adat csupán Base64-kódolt, nem titkosított – bárki, akinek van tokenje, dekódolhatja és elolvashatja. JWT-kbe csak azonosítókat és nem érzékeny claims-eket helyezzen.

Egy másik gyakori hiba a túlzottan hosszú lejárati idő beállítása. Egy 30 napig érvényes token 30 napig lehetőséget ad egy támadónak az ellopott token felhasználására. Tartsa rövid a hozzáférési tokenek élettartamát (5–15 perc), és frissítési tokeneket alkalmazzon hosszabb munkamenetekhez.

Gyakran ismételt kérdések

Mi a különbség a HS256 és az RS256 között?

A HS256 megosztott szimmetrikus titkot használ – ugyanaz a kulcs írja alá és ellenőrzi a tokent. Az RS256 aszimmetrikus kulcspárt alkalmaz – egy privát kulcs ír alá, egy nyilvános kulcs ellenőriz. Az RS256 elosztott rendszerekben preferált, mert az ellenőrzési kulcs nyilvánosan megosztható a biztonság veszélyeztetése nélkül.

Visszavonható-e egy JWT?

A JWT-k állapotmentesek, ezért közvetlenül nem vonhatók vissza. Általános megkerülő megoldások: visszavont tokenek szerveroldali tiltólistájának fenntartása, rövid lejárati idők alkalmazása vagy aláírási kulcsok rotálása. Azonnali visszavonási igény esetén érdemes átlátszatlan tokeneket alkalmazni szerveroldali munkamenet-tárolással.