JWT Ayıklayıcı & Çözücü

JSON Web Token'ları (JWT) gerçek zamanlı olarak çözün, doğrulayın ve inceleyin.

JWT (JSON Web Token) Nedir? Detaylı Bakış

Bir JSON Web Token (JWT), taraflar arasında bilgileri ("talepleri") bir JSON nesnesi olarak güvenli bir şekilde iletmek için kullanılan kompakt, URL-güvenli bir standarttır (RFC 7519). Modern web uygulamalarında ve API'lerde durum bilgisi olmayan (stateless) kimlik doğrulama ve yetkilendirmeyi yönetmek için en yaygın yöntemdir.

Bir JWT rastgele bir dize değildir. Noktalarla (.) ayrılmış üç bölümden oluşan Base64URL kodlu bir dizedir:

HEADER.PAYLOAD.SIGNATURE

  1. Header (Base64URL): Token türünü (typ: "JWT") ve kullanılan imzalama algoritmasını (alg: "HS256" veya "RS256") belirten bir JSON nesnesi.
  2. Payload (Base64URL): "Talepleri" (claims) içeren bir JSON nesnesi—genellikle kullanıcı hakkında ifadeler (örn. kullanıcı ID'si sub, ad name) ve ek veriler (örn. oluşturulma/sona erme zamanları iat, exp).
  3. Signature (İmza): Bu güvenlik kısmıdır. İmzayı oluşturmak için, kodlanmış header, kodlanmış payload ve bir gizli anahtar (HS256 için) veya özel anahtar (RS256 için) hash'lenir.

KRİTİK: Payload KODLANMIŞTIR, ŞİFRELİ DEĞİLDİR.
Herkes bir JWT'nin Header ve Payload'ının kodunu çözebilir. Bu ayıklayıcı tam olarak bunu yapar. Payload'a asla hassas bilgiler (şifreler gibi) koymayın. İmzanın tek görevi, Header ve Payload'ın bir saldırgan tarafından kurcalanmadığını doğrulamaktır.

JWT Örnekleri

JWT örnekleri yükleniyor...

JWT En İyi Uygulamaları ve Temel Kavramlar

🚫

Payload Şifreli DEĞİLDİR

En büyük hata, JWT payload'unun gizli olduğunu varsaymaktır. Yalnızca Base64 ile kodlanmıştır ve herkes tarafından okunabilir. Payload'a asla kullanıcı şifreleri, API anahtarları veya diğer hassas sırları saklamayın. JWT'ler gizlilik (sır tutma) değil, kimlik doğrulama (kim olduğunuz) sağlar.

⚖️

HS256 vs. RS256

HS256 (Simetrik): Hem imzalamak hem de doğrulamak için tek bir gizli anahtar kullanır. Hızlı ve basittir. Sunucu ve istemci aynı sırrı paylaşmalıdır.
RS256 (Asimetrik): İmzalamak için bir özel anahtar, doğrulamak için bir açık anahtar kullanır. Daha karmaşıktır, ancak özel anahtar sunucudan hiç ayrılmadığı için daha güvenlidir.

İmzayı Daima Doğrulayın

Bir JWT yalnızca bir metin parçasıdır. Payload içindeki verilere (örn. {"admin": true}) imzayı kriptografik olarak doğrulamadan asla güvenmeyin. İmza geçersizse veya alg "none" (yok) ise, token güvenilmezdir ve derhal reddedilmelidir.

Sıkça Sorulan Sorular (JWT)

Blogumuzdan