Iddekowdja JSON Web Token (JWT)
- Dashboard
- Dokumentazzjoni
- API
X'inhu JWT (JSON Web Token)?
JSON Web Token, imqassar għalJWT(pronunzjata "jot"), huwa format kompatt definit minnRFC 7519li jippermetti t-trasport ta 'serje ta' pretensjonijiet (talbiet) bejn żewġ partijiet. JWT, jew JWT token, huwa l-format dominanti llum biex twassal identità awtentikata f'API HTTP. JWT jidher bħala string ASCII magħmul minntliet segmenti separati minn punti:
header.payload.signature
Kull segment huwa kodifikat f'Base64URL, varjant ta' Base64 mingħajr ikkuttunar
= u li jissostitwixxi + b'- u / bi _
sabiex tkun tista 'tgħaddi minn URL jew header HTTP mingħajr ma jaħrab addizzjonali.
Importanti: JWT MHUX encrypted. Il-format standard JWT (JWS) huwa sempliċiment iffirmat: il-firma tiggarantixxi l-integritàtal-kontenut, iżda ma jipprovdi ebdakunfidenzjalità. Kulħadd jista' jiddekodifika tagħbija JWT b'reverse Base64URL sempliċi, kif tagħmel din l-għodda onlajn jwt decode.
Anatomija ta' JWT
json web token huwa magħmul minn tliet partijiet distinti ħafna, kull waħda għandha rwol speċifiku fil-mekkaniżmu ta' awtentikazzjoni:
1. Header
L-header huwa oġġett JSON li jiddeskrivi kif it-token jiġi ffirmat. Fih mill-inqas:
alg(algoritmu): l-algoritmu tal-firma użat. Valuri tipiċi:HS256,RS256,ES256,EdDSA.tip(tip): it-tip tat-token, kważi dejjem"JWT".kid(ID taċ-ċavetta): mhux obbligatorju, jidentifika liema ċavetta għandha tintuża biex jivverifika l-firma. Prattiku fil-preżenza ta 'sett ta' ċwievet li jduru (JWKS).
2. Tagħbija
It-tagħbija fiha l-klejms, jiġifieri t-talbiet li jagħmel l-emittent dwar l-utent jew is-sessjoni. RFC 7519 jiddefinixxi seba’ talbiet standard (reġistrati pretensjonijiet):
iss(emittent): min ħareġ it-token, pereżempju"https://accounts.google.com".sub(suġġett): min għandu t-token, fil-prattika l-ID tal-utent.aud(udjenza): għal min hu maħsub it-token. Evita token maħruġa għall-API A hija aċċettata mill-API B.exp(ħin ta' skadenza): Timestamp Unix li warajh it-token m'għadux validu.nbf(mhux qabel): timestamp li qabel ma jkunx it-token għadu attiv.iat(maħruġ fi): marka taż-żmien tal-ħruġ tat-token.jti(JWT ID): identifikatur uniku tat-token, użat għal revoka u prevenzjoni ta' replay.
Ma 'dawn it-talbiet standard huma ġeneralment miżjudaklejms tad-dwanaspeċifiċi għal
l-applikazzjoni (rwoli, ambitu, tenant_id, email,
permessi...).
3. Firma
Il-firma hija kondensat kriptografiku kkalkulat fuq
base64url(header) + "." + base64url(payload) billi tuża ċavetta. Hija hi li tipprova
li ħadd ma mmodifika l-header jew il-payload mindu x-xandira. L-aktar algoritmi komuni:
- HS256 / HS384 / HS512: Firma simmetrika HMAC-SHA. Ċavetta sigrieta kondiviża bejn l-emittent u l-verifikatur. Sempliċi, iżda mhux adattat meta jkun hemm aktar minn konsumatur wieħed.
- RS256 / RS384 / RS512: firma RSA asimmetrika. It-trasmettitur jiffirma biċ-ċavetta tiegħu privat, kwalunkwe konsumatur jivverifika biċ-ċavetta pubblika korrispondenti. Standard de facto għal OAuth2 u OpenID Connect.
- ES256 / ES384 / ES512: Firma asimmetrika ECDSA. L-istess proprjetajiet bħal RS256 iżda b'ċwievet u firem ħafna iqsar.
- EdDSA (Ed25519): firma asimmetrika moderna, veloċi u kompatta.
Għal darb'oħra:il-firma tipproteġi l-integrità, mhux il- kunfidenzjalità. Il- payload jibqa' jinqara minn kull min għandu t-token.
Għaliex jiddekowdja JWT?
L-jwt token decodel-operazzjoni tissodisfa diversi ħtiġijiet konkreti għal żviluppatur jew inġinier tas-sigurtà:
- Debug tal-Awtentikazzjoni: l-API tiegħek jirritorna 401 jew 403, trid tara
x'inhu fil-fatt fit-tagħbija (
sub,skop,rwoli,exp) aktar milli guessing. - Iċċekkja t-talbiet: ikkonferma li token fih it-talba
mistenni (eż.
tenant_idjewpermessi) qabel ma tfittex x'imkien ieħor fil-katina tal-awtorizzazzjoni. - Aqra l-iskadenza: ikkonverti timestamp
expgħal data umana għal tikkonferma li token skada, jew għall-kuntrarju li għandu jkun għadu validu. - Verifika tas-sigurtà: tiżgura li servizz ta’ parti terza ma joħroġx informazzjoni sensittivi fit-tagħbija (emails, identifikaturi interni, data personali).
- Taħriġ u fehim: ara b'mod konkret dak a jsonwebtoken li joħroġ minn fornitur OAuth (Google, Auth0, Keycloak, AWS Cognito) għal tifhem il-mekkanika mingħajr ma tgħaddas fid-doks.
- Esplorazzjoni ta’ tokens pubbliċi: spezzjona JWT li jinstab fiz-zkuk, f’ cookie jew fi skambju OAuth interċettabbli.
Decoder vs Verifier: id-distinzjoni kritika
Iż-żewġ operazzjonijiet jidhru simili iżda m'għandhom x'jaqsmu xejn f'termini ta' garanziji ta' sigurtà:
- Id-dekodifikazzjoni ta' JWT tikkonsisti fil-qsim tas-sekwenza fuq il-
.u applika Base64URL invers għall-ewwel żewġ segmenti. Huwa qari sempliċi, li jistgħu jintlaħqu ta’ kwalunkwe kitba ta’ tliet linji. L-ebda verifika tal-firma ma jsirx. - Il-verifika ta' JWT tikkonsisti fil-kalkolu mill-ġdid tal-firma mill-header, payload u ċavetta, imbagħad tqabbel ir-riżultat mal-firma preżenti fit-token. Huwa litiggarantixxi li t-token ma ġiex imbagħbas.
Konklużjoni prattika:dekodifikazzjoni mhux ta 'min jafda. Sakemm il-firma ma ġiex ivverifikat biċ-ċavetta korretta, il-kontenut tat-tagħbija jista 'jkun kompletament falz. Għall- fażi ta’ fiduċja, uża l-JWT Verifier tagħna.
Kif tużah
- Ikseb il-JWT biex jispezzjona, pereżempju minn header
Awtorizzazzjoni: Bearer, minn cookie tas-sessjoni, mill-localStoragemill-browser, jew minn log tal-applikazzjoni. - Waħħal is-sekwenza sħiħa fil-qasam tad-dħul. It-tliet segmenti għandhom jibqgħu separati minn punti.
- L-għodda immedjatament turi l-header dekodifikat f'JSON ifformattjat, bil l-algoritmu u t-tip.
- Il-tagħbija imbagħad tiġi dekodifikata u murija. Inti tara l-pretensjonijiet kollha hemmhekk standard u drawwa.
- L-għodda tindika wkoll l-informazzjoni dwar il-firma (algoritmu ddikjarat, tul), mingħajr ma tiċċekkjaha.
- Biex tikkonferma li t-token ma ġiex imbagħbas, aqleb għal tagħna JWT Verifier biċ-ċavetta pubblika jew sigrieta mistennija.
Id-dekodifikazzjoni kollha ssir fil-browser tiegħek f'JavaScript: it-token tiegħek qatt ma jintbagħat għas-servers tagħna.
JWT u sigurtà: in-nases li għandhom jiġu evitati
QATT taħżen data sensittiva fit-tagħbija ta' JWT iffirmat.
Passwords, numri ta' karti ta' kreditu, data medika, sigrieti API, identifikaturi interni kritiċi: kollox fil-payload huwajinqara minn kulħadd tippossjedi t- token, inkluż l-utent innifsu permezz tal-għodod tal-iżviluppatur tal browser tiegħu. Il-firma ma taħbi xejn, hija biss tipprova li l-emittent huwa tabilħaqq min jgħid li hu.
Ftit regoli tad-deheb għall-użu tajjeb ta' JWT fil-produzzjoni:
- Dejjem iċċekkja l-firma min-naħa tas-server qabel tagħti kwalunkwe dritt. Il-JWT Verifier tagħna juri eżattament din l-operazzjoni.
- Ippreferi RS256 jew ES256 għal HS256 għall-APIs pubbliċi. Il-firma asimmetriku jevita li taqsam sigriet bejn it-trasmettitur u kull konsumatur.
- Dejjem irrispetta t-talba
exp. A JWT mingħajr skadenza jew bi l-exhaling wisq 'il bogħod hija bomba tal-ħin fil-każ ta' tnixxija. - Ivvalida
issuaudfuq in-naħa tas-server, biex tevita token leġittimu maħruġ għal servizz ieħor huwa aċċettat bi żball. - Irrifjuta
alg: "xejn"min-naħa tal-verifika. Dan huwa difett klassiku li jippermetti lil attakkant li jifforma kwalunkwe tagħbija. - Żomm it-tul tal-ħajja qasir (15-il minuta per eżempju) u għaqqad ma' a refresh token itwal iżda revokabbli fuq in-naħa tas-server.
Eżempju ta' token JWT dekodifikat
Hawn hemm JWT tipiku:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJuYW1lIjoiSm9obi IsImlhdCI6MTUxNjIzOTAyMn0.jrU9j8LZcRK2_BZjqXjU7lEpJbkqmXfTQIu9vT45j-I
Ladarba jiġi dekodifikat, hawn hu l-kontenut tiegħu:
// Header
{
"alg": "HS256",
"tip": "JWT"
}
// Tagħbija
{
"sub": "123",
"isem": "Ġwanni",
"iat": 1516239022
}
// Firma (binarja, kodifikata Base64URL)
HMACSHA256(
base64url(header) + "." + base64url (tagħbija),
sigriet
)
Fejn issib JWT biex tikkopja?
Fil-prattika, JWT biex decrypt(fis-sens ta' dekodifikazzjoni) ħafna drabi jiġi minn waħda minn dawn postijiet:
- HTTP Cookie: iftaħ l-għodod ta' żvilupp (F12), tab
Applikazzjoni jew Ħażna, imbagħad Cookies. Sib cookie msemmija
access_token,jwt,sessjonijew simili. localStorage/sessionStorage: l-istess panel, taqsima Ħażna Lokali. Ħafna SPAs jaħżnu t-token tagħhom hemmhekk taħt ċavettatokenjewauth.Awtorizzazzjoniheader: Netwerk tab, agħżel waħda Talba API, aqra l-intestaturaAwtorizzazzjoni: Bearer. Ikkopja biss il- parti waraBearer.- Reġistri tas-server: JWT kultant jidher fir-reġistru ta’ gateway jew reverse proxy (biex jiġi evitat fil-produzzjoni, iżda utli fid-debug).
Mistoqsijiet frekwenti
Eżempju ta' talba
curl -X POST https://cdrn.fr/api/v1/tools/jwt-decoder/execute \
-H "Content-Type: application/json" \
-d '{"token":"..."}'
Skema ta' input
| Kamp | Tip | Meħtieġ | Default |
|---|---|---|---|
token |
text | ✓ | – |
Endpoints
GET https://cdrn.fr/api/v1/tools- telenka l-għodod kollha disponibbliGET https://cdrn.fr/api/v1/tools/jwt-decoder- tikseb l-iskema ta' din l-għoddaPOST https://cdrn.fr/api/v1/tools/jwt-decoder/execute- teżegwixxi din l-għodda b'payload JSON