> çöz | incele | doğrula <
// JSON Web Token'ları (JWT) anında çözün ve inceleyin
Yerel İşleme
%100 istemci taraflı JWT çözme. Token'larınız asla tarayıcınızı terk etmez.
Otomatik Çözme
Yapıştırma veya yazma sırasında JWT token'ları otomatik olarak çözülür.
Tam Token İncelemesi
Başlık, yük ve imzayı görüntüleyin. Algoritma ve süre sonunu kontrol edin.
// JWT ÇÖZME HAKKINDA
JWT Yapısı:
JSON Web Token (JWT), noktalarla ayrılmış üç Base64URL kodlu parçadan oluşur: başlık.yük.imza. Başlık algoritmayı ve token türünü belirtir. Yük talepleri (verileri) içerir. İmza token'ın bütünlüğünü doğrular.
Örnek:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.signature → {"alg":"HS256"} + {"sub":"1234"}
Yaygın Kullanım Alanları:
- >Web uygulamalarında kimlik doğrulama token'larının hata ayıklaması
- >OAuth 2.0 ve OpenID Connect token'larının incelenmesi
- >Token süre sonu ve taleplerin doğrulanması
- >RFC 7519'a göre JWT yapısının anlaşılması
- >Base64URL kodlama bütünlüğünün kontrolü
>> sık sorulan sorular
S: JSON Web Token (JWT) nedir?
C: JWT (JSON Web Token), taraflar arasında JSON nesnesi olarak güvenli bilgi iletimi için açık bir standarttır (RFC 7519). Kompakt, URL güvenlidir ve kimlik doğrulama için yaygın olarak kullanılır.
S: JWT'nin üç parçası nelerdir?
C: JWT, noktalarla ayrılmış üç parçadan oluşur: Başlık (algoritma ve tür), Yük (talepler ve veriler) ve İmza (doğrulama hash'i). Her parça Base64URL ile kodlanmıştır.
S: JWT gizli anahtar olmadan çözülebilir mi?
C: Evet, JWT'nin başlığı ve yükü sadece Base64URL ile kodlandığından (şifrelenmediğinden) herkes tarafından çözülebilir. Gizli anahtar yalnızca imzayı doğrulamak için gereklidir.
S: JWT ile oturum tabanlı kimlik doğrulama arasındaki fark nedir?
C: Oturumlar, oturum ID çerezi ile durumu sunucuda saklar. JWT'ler durumsuz (stateless)dur — token'ın kendisi tüm gerekli bilgileri içerir.
S: JWT süre sonu nasıl çalışır?
C: JWT yükündeki exp talebi, süre sonunu Unix zaman damgası olarak belirtir. Bu sürenin ardından token geçersiz sayılmalıdır.
// Yaygın JWT imza algoritmaları
Başlıktaki alg değeri imzanın nasıl oluşturulacağını belirler. HS* paylaşılan bir gizli anahtar kullanır; RS*, PS*, ES* ve EdDSA anahtar çiftleri kullanır.
| alg | Algoritma |
|---|---|
| HS256 | HMAC + SHA-256 |
| HS512 | HMAC + SHA-512 |
| RS256 | RSA PKCS#1 v1.5 + SHA-256 |
| PS256 | RSASSA-PSS + SHA-256 |
| ES256 | ECDSA P-256 + SHA-256 |
| EdDSA | Ed25519 |
// Kodda JWT doğrulama
Yalnızca çözmek hiçbir şeyi doğrulamaz. Doğrularken izin verilen algoritmaları her zaman açıkça belirtin.
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)
>> Daha fazla soru
S: iss, sub, aud, exp, nbf, iat ve jti standart claim’leri ne anlama gelir?
C: iss yayıncı, sub konu (genelde kullanıcı kimliği), aud hedef kitle, exp son kullanma zamanı, nbf geçerlilik başlangıcı, iat yayın zamanı ve jti benzersiz token kimliğidir. Zamanlar Unix saniyesidir.
S: JWT şifreli midir?
C: Sıradan imzalı bir JWT (JWS) şifreli değildir, yalnızca Base64URL ile kodlanmıştır: içeriği herkes okuyabilir. İmza yalnızca değiştirilmeye karşı korur. İçine hassas veri koymayın veya şifreli JWE kullanın.
S: JWT imzası nasıl doğrulanır?
C: Anahtara ihtiyacınız var: HS256 için paylaşılan gizli anahtar, RS256/ES256 için genel anahtar. Sunucu Başlık.Yük için imzayı yeniden hesaplar ve karşılaştırır. Bu çözücü tarayıcıda çalışır ve imzayı sizin yerinize doğrulamaz; denenmiş bir kütüphane kullanın.
S: JWT ile ilgili yaygın güvenlik hataları nelerdir?
C: Yaygın olanlar: token’ın kendi alg değerine (özellikle none) güvenmek, zayıf HS256 gizli anahtarları, exp, iss ve aud kontrolünün yapılmaması, yükte hassas veri bulunması ve uzun ömürlü token’ların localStorage’da saklanması.