Weryfikator podpisu JWT
Weryfikuj podpis JWT tokenu: HS256 (HMAC) i RS256 (RSA). Sprawdź claims, exp i iss. Bezpiecznie w przeglądarce. Bezpłatnie.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćWeryfikator podpisu JWT – weryfikacja HMAC i RSA w przeglądarce
Weryfikacja podpisu JWT to kluczowy krok bezpieczeństwa. Narzędzie weryfikuje podpis tokenu JWT dla algorytmów HS256 (HMAC-SHA256) i RS256 (RSA-SHA256) bezpośrednio w przeglądarce – bez wysyłania tokenu na zewnętrzny serwer, co jest bezpieczne dla produkcyjnych tokenów.
Jak działa weryfikacja JWT
JWT = header.payload.signature. Header + payload: base64url encoded. Signature: HMAC-SHA256(base64url(header) + "." + base64url(payload), secret) dla HS256. Weryfikacja: oblicz podpis lokalne → porównaj z podpisem w tokenie. Wynik: valid (podpisy zgodne) lub invalid (zmieniony token lub błędny klucz).
Algorytmy podpisu JWT
HS256 (HMAC-SHA256): symetryczny klucz sekretny. Serwer podpisuje i weryfikuje tym samym kluczem. Prosty, ale klucz musi być chroniony. RS256 (RSA-SHA256): asymetryczny. Private key podpisuje, public key weryfikuje. Bezpieczniejszy w distributed systems. ES256 (ECDSA-SHA256): eliptyczna krzywa, mniejsze klucze. Unikaj "none" (brak podpisu – podatność!).
Weryfikacja RS256 – Public Key
RS256: potrzebujesz public key do weryfikacji. Format: PEM (-----BEGIN PUBLIC KEY-----). JWKS: JSON Web Key Set (endpoint serwera z public keys). Automatyczne pobieranie: well-known/jwks.json. Narzędzie: wklej public key PEM lub JWKS URL. Weryfikacja: Web Crypto API (SubtleCrypto.verify()) – natywna, bezpieczna w przeglądarce.
Claims do sprawdzenia
exp (expiration): czy token nie wygasł. iat (issued at): czy token nie jest z przyszłości. nbf (not before): czy jest już ważny. iss (issuer): czy od oczekiwanego serwera. aud (audience): czy dla Twojej aplikacji. sub (subject): identyfikator użytkownika. jti (JWT ID): czy token nie jest na blackliście.
Najczęstsze pytania
Jak bezpiecznie weryfikować JWT w Node.js?
npm install jsonwebtoken. const jwt = require("jsonwebtoken"). jwt.verify(token, secret, (err, decoded) => { if(err) throw err; console.log(decoded); }). Opcje: algorithms: ["HS256"] (whitelista, zapobiega alg confusion). audience: "myapp". issuer: "https://auth.example.com". clockTolerance: 30 (sekundy).
Jak weryfikować JWT z JWKS (RS256)?
npm install jwks-rsa jsonwebtoken. const jwksClient = require("jwks-rsa"); const client = jwksClient({ jwksUri: "https://auth.example.com/.well-known/jwks.json" }). Pobierz public key przez kid (key ID) z header tokenu. Weryfikuj przez jwt.verify(token, key.publicKey). Caching JWKS: jwks-rsa robi to automatycznie.
Najczęstsze błędy weryfikacji JWT?
Algorithm confusion: serwer akceptuje "none" lub RS256 zamieniony na HS256 z public key jako secret → krytyczna podatność. Fix: zawsze jawnie określ algorithms: ["RS256"]. Expired token: sprawdź exp. Klucz rotacja: jeśli klucz się zmienił, stare tokeny stają się invalid. Audience mismatch: token dla innej aplikacji – sprawdź aud.
Czy mogę ufać narzędziom online do weryfikacji JWT?
NIE dla produkcyjnych tokenów z prawdziwymi danymi. Ryzyko: token zawiera payload z danymi użytkownika. Bezpieczne: to narzędzie weryfikuje w przeglądarce (JavaScript), bez wysyłania na serwer. Sprawdź: czy narzędzie jest open-source, czy używa network requests. Deweloperskie tokeny testowe: bezpieczne. Produkcyjne: używaj lokalnie (node-jose, python-jose).
Co to jest "alg:none" atak na JWT?
Podatność: jeśli serwer akceptuje JWT z "alg":"none" w headerze – każdy może stworzyć ważny token bez podpisu. Przykład ataku: zmień header na {"alg":"none","typ":"JWT"}, usuń signature, dodaj {admin:true} w payload. Fix: zawsze sprawdź algorytm w kodzie serwerowym. Nigdy nie ufaj algorytmowi deklarowanemu w tokenie – whitelist.
Powiązane narzedzia: analizator JWT, koder base64 i generator klucza API.