JWT Çözücü (Token İnceleme)

JSON Web Token yapıştırın; header ve payload'ı biçimli JSON olarak okuyun — süre alanları insan tarihine çevrilir. Tamamen çevrimdışı.

1.161 görüntülenme

Nasıl Çalışır

JSON Web Token, nokta ile ayrılmış üç Base64URL kodlu parçadan oluşan kompakt bir dizgedir: header.payload.signature. Base64URL, normal Base64'ün URL-güvenli biçimidir; +// yerine -/_ kullanır ve sondaki = dolgusunu atar, böylece sonuç bir URL veya HTTP başlığı içinde kaçış karakteri gerekmeden durabilir. Header, imzalama algoritmasını ve token türünü belirten küçük bir JSON nesnesidir — genellikle {"alg":"HS256","typ":"JWT"}. Payload ise "claim" adı verilen anahtar/değer çiftlerinden oluşan bir JSON nesnesidir: token'ın kimi temsil ettiğini ve neye yetkili olduğunu tanımlar, ayrıca birkaç standart zaman claim'i içerir — iat (verilme zamanı), nbf (öncesinde geçersiz) ve exp (son kullanma), hepsi Unix zaman damgası olarak saklanır. İmza, ilk iki parça üzerinden header'da belirtilen algoritma ve yalnızca token'ı üreten sunucunun sahip olduğu bir anahtarla hesaplanır.

Buraya bir token yapıştırdığınızda araç onu iki noktasından böler, header ve payload'ı Base64URL ile çözer, her ikisini de girintili JSON olarak biçimlendirir. exp/iat/nbf değerleri ayrıca okunur tarihe çevrilir; token'ın şu an süresi dolmuş mu, tek bakışta bir rozetle görürsünüz.

JWT'ler günümüz kimlik doğrulamasının belkemiğidir: OAuth 2.0 erişim token'ları, OpenID Connect kimlik token'ları ve pek çok özel oturum sistemi bu biçimi kullanır — çünkü bir sunucunun, veritabanı sorgusu yapmadan başka servislerin okuyabileceği kendi kendine yeterli bir kimlik bilgisi üretmesini sağlar; tek şart imzanın doğrulanabilmesidir. Yaygın algoritmalar HS256 (paylaşılan gizli anahtarla HMAC) ve RS256/ES256'dır (asimetrik RSA veya eliptik eğri imzaları; üretici özel anahtarı tutar, herkes eşleşen açık anahtarla doğrulayabilir).

Bilinmesi Gerekenler

Çözmek, doğrulamak değildir. Header ve payload yalnızca kodlanmıştır, şifrelenmemiştir — bu yüzden herkes anahtarsız okuyabilir, ve herkes istediği claim'lerle sahte bir token da üretebilir. Bir JWT'yi güvenilir kılan tek şey imzasıdır; imzayı kontrol etmek HMAC algoritmalarında gizli anahtarı, RSA/ECDSA algoritmalarında ise üreticinin açık anahtarını gerektirir. Bu kontrol, anahtarı tutan bir sunucuda yapılmalıdır; tarayıcı içi bir araçta güvenle yapılamaz, çünkü gizli anahtarı orada açığa çıkarmak amacını zaten boşa çıkarır. Bu çözücüyü yalnızca bir hata ayıklama yardımcısı olarak görün — asla bir token'ın gerçek veya hâlâ geçerli olduğunun kanıtı olarak değil.

Yapıştırdığınız şeye de dikkat edin: JWT oturum veya yetki bilgisi taşır, bu yüzden parola gibi davranın ve ortak bir makinede canlı üretim token'larını hiçbir araca yapıştırmayın. Beş nokta ayraçlı parçası olan token'lar JWE'dir (şifreli), JWS (imzalı) değil — bu çözücü çok daha yaygın olan imzalı türü işler. Kendi doğrulama kodunuzda alg alanına asla körü körüne güvenmeyin — bilinen bir saldırı, saf gerçeklemeleri alg: none'u kabul etmeye veya RS256'yı HS256 ile değiştirmeye kandırır; imza doğrulamasının elle yazılmış kod yerine denetlenmiş kütüphanelerde yapılması gerekmesinin nedeni budur.

Sıkça Sorulan Sorular

Çözme, token'ın geçerli olduğunu doğrular mı?

Hayır — çözme yalnız içeriği okur. İmza doğrulaması, imza anahtarını gerektirir ve sunucunuzun işidir. Herkes istediği payload'la token üretebilir; gerçekliği yalnız imza kanıtlar.

Gerçek (canlı) bir token'ı buraya yapıştırmak güvenli mi?

Araç token'ı hiçbir yere iletmez — çözme yereldir. Yine de canlı token'lara parola muamelesi yapın: ortak ortamlarda süresi dolmuş veya test token'ı tercih edin.

Token'ım neden çözülmüyor?

Üç nokta ayraçlı parçanın tamamını kopyaladığınızdan ve satır sonu karışmadığından emin olun. Şifreli token'lar (JWE, beş parça) anahtarsız okunamaz — bu araç yaygın tür olan imzalı (JWS) token'ları çözer.

JWS ile JWE arasındaki fark nedir?

JWS (JSON Web Signature) bu aracın çözdüğü imzalı biçimdir — üç parça, okunabilir ama kurcalamaya karşı korumalı. JWE (JSON Web Encryption) beş parçalıdır ve payload'ın kendisi şifrelidir; şifre çözme anahtarı olmadan hiç okunamaz. Token burada çözülmüyorsa ve iki yerine dört noktası varsa muhtemelen JWE'dir.

exp, iat ve nbf claim'leri ne anlama gelir?

Üçü de Unix zaman damgasıdır (1970-01-01'den bu yana saniye). iat token'ın ne zaman verildiğini, nbf geçerli olacağı en erken anı, exp ise geçerliliğinin biteceği anı kaydeder — bir sunucu, şu anki zaman nbf-exp aralığının dışındaysa token'ı reddetmelidir.

Yorumlar

Henüz yorum yok — ilk yorumu siz yazın!

Benzer Araçlar