afkod | inspicér | verificér

> afkod | inspicér | verificér <

// Afkod og inspicér JSON Web Tokens (JWT) øjeblikkeligt

[SIKKER]

Lokal Behandling

100% klientside JWT-afkodning. Dine tokens forlader aldrig din browser.

[ØJEBLIKKELIG]

Auto-Afkodning

Afkod JWT tokens automatisk ved indsætning eller indtastning.

[GRATIS]

Fuld Token Inspektion

Vis header, payload og signatur. Tjek algoritme og udløb.

// OM JWT AFKODNING

JWT Struktur:

En JSON Web Token (JWT) består af tre Base64URL-kodede dele adskilt af punkter: header.payload.signatur. Headeren angiver algoritmen og tokentypen. Payloaden indeholder krav (data). Signaturen verificerer tokenets integritet.

Eksempel:

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.signature → {"alg":"HS256"} + {"sub":"1234"}

Almindelige Anvendelser:

  • >Fejlsøgning af autentificeringstokens i webapplikationer
  • >Inspektion af OAuth 2.0 og OpenID Connect tokens
  • >Verificering af token udløb og krav
  • >Forståelse af JWT struktur ifølge RFC 7519
  • >Kontrol af Base64URL kodningsintegritet

>> ofte stillede spørgsmål

S: Hvad er en JSON Web Token (JWT)?

S: JWT (JSON Web Token) er en åben standard (RFC 7519) til sikker transmission af information mellem parter som et JSON-objekt. Den er kompakt, URL-sikker og bruges ofte til autentificering.

S: Hvad er de tre dele af en JWT?

S: En JWT består af tre dele adskilt af punkter: Header (algoritme og type), Payload (krav og data) og Signatur (verifikationshash). Hver del er Base64URL-kodet.

S: Kan en JWT afkodes uden den hemmelige nøgle?

S: Ja, headeren og payloaden i en JWT kan afkodes af alle, da de blot er Base64URL-kodede (ikke krypterede). Den hemmelige nøgle er kun nødvendig for at verificere signaturen.

S: Hvad er forskellen mellem JWT og sessionsbaseret autentificering?

S: Sessioner gemmer tilstand på serveren med en sessions-ID cookie. JWT'er er tilstandsløse — tokenet selv indeholder al nødvendig information.

S: Hvordan fungerer JWT udløb?

S: exp-kravet i JWT payloaden angiver udløbstidspunktet som et Unix-tidsstempel. Efter dette tidspunkt bør tokenet anses for ugyldigt.

// Almindelige JWT-signaturalgoritmer

Værdien alg i headeren angiver, hvordan signaturen laves. HS* bruger en delt hemmelighed; RS*, PS*, ES* og EdDSA bruger nøglepar.

algAlgoritme
HS256HMAC + SHA-256
HS512HMAC + SHA-512
RS256RSA PKCS#1 v1.5 + SHA-256
PS256RSASSA-PSS + SHA-256
ES256ECDSA P-256 + SHA-256
EdDSAEd25519

// Verificér JWT i kode

Afkodning alene verificerer intet. Angiv altid udtrykkeligt de tilladte algoritmer ved verificering.

Node.js (jsonwebtoken)   jwt.verify(token, secret, { algorithms: ['HS256'] })
Python (PyJWT)           jwt.decode(token, key, algorithms=["HS256"])
PHP (firebase/php-jwt)   JWT::decode($token, new Key($key, 'HS256'))
Go (golang-jwt)          jwt.Parse(token, keyFunc, jwt.WithValidMethods([]string{"HS256"}))
Java (jjwt)              Jwts.parser().verifyWith(key).build().parseSignedClaims(token)

>> Flere spørgsmål

S: Hvad betyder standardclaims iss, sub, aud, exp, nbf, iat og jti?

S: iss er udstederen, sub emnet (ofte bruger-id), aud den tiltænkte modtager, exp udløbstidspunktet, nbf starten på gyldigheden, iat udstedelsestidspunktet og jti et unikt token-id. Tidspunkter er Unix-sekunder.

S: Er en JWT krypteret?

S: En almindelig signeret JWT (JWS) er ikke krypteret, kun Base64URL-kodet: alle kan læse indholdet. Signaturen beskytter kun mod manipulation. Læg ikke følsomme data i den, eller brug en krypteret JWE.

S: Hvordan verificerer jeg signaturen på en JWT?

S: Du skal bruge nøglen: den delte hemmelighed til HS256 eller den offentlige nøgle til RS256/ES256. Serveren genberegner signaturen for Header.Payload og sammenligner. Denne afkoder kører i browseren og verificerer ikke signaturen for dig – brug et gennemprøvet bibliotek.

S: Hvilke almindelige sikkerhedsfejl findes der med JWT?

S: Hyppige: at stole på alg fra selve tokenet (især none), svage HS256-hemmeligheder, manglende kontrol af exp, iss og aud, følsomme data i payload og langtidsholdbare tokens i localStorage.

// ANDRE SPROG