KeroTools

JWT Çözücü — Başlık ve Yükü Oku

Başlığını ve yükünü net görmek için bir JWT'yi anında ve gizli şekilde tarayıcınızda çözün.

Giriş
0 karakter
Çıktı

Belirteç cihazınızda kalır

Sonradan silinecek bir şey yok

Canlı kimlik bilgileri için yapıldı

Her modern tarayıcıda çalışır

Nasıl çalışır

  1. 1

    Belirteci yapıştırın

    İki noktasıyla birlikte tamamını — üç bölüm onlarla ayrılır.

  2. 2

    Talepleri okuyun

    Bir yanda başlık, öbür yanda yük; zaman damgaları tarihe çevrilmiş olarak.

  3. 3

    Aradığınıza bakın

    Genellikle son kullanma, veren, hedef kitle ya da belirtecin gerçekte hangi kullanıcıya ait olduğu.

Neden bu araç

Başlık ve yük yan yana

Algoritma ve anahtar ipucu taleplerin yanında; hata ayıklama sorularının çoğu burada yanıtlanır.

Zaman damgaları okunur biçimde

`exp`, `iat` ve `nbf`, çevirmeniz gereken on haneli sayılar olarak değil tarih olarak gösterilir.

Son kullanma şimdiyle karşılaştırılır

Belirtecin hâlâ penceresinde olup olmadığını hesap yapmadan hemen görürsünüz.

Doğrulama konusunda dürüst

Bu araç çözer; imza doğrulamaz ve belirtecin geçerli olduğunu ima etmek yerine bunu söyler.

Hiçbir şey iletilmez

Belirteç tarayıcınızda ayrıştırılır — çalışan bir oturum kimlik bilgisi hiçbir sunucuya ulaşmaz.

Ücretsiz, hesapsız

Kayıt yok, filigran yok, kaç belirteç inceleyeceğinize dair sınır yok.

Çözmek doğrulamak değildir ve fark, güvenlik modelinin tamamıdır

Bir JWT’nin noktalarla ayrılmış üç bölümü vardır ve ilk ikisi yalnızca base64url metnidir. Belirteci elinde tutan herkes başlığı ve yükü tek adımda okuyabilir — bu sayfanın yaptığı budur ve anahtar, izin ya da sır gerektirmez. Doğrulama bambaşka bir işlemdir: imzayı, verenin anahtarıyla ilk iki bölüm üzerinden yeniden hesaplamak ve üçüncüyle eşleştiğini denetlemek. Belirtecin özgün ve değiştirilmemiş olduğunu yalnızca doğrulama söyler. Bir çözücü size belirtecin ne iddia ettiğini söyler, iddianın doğru olup olmadığını asla; çünkü herkes canının istediğini söyleyen bir belirteç uydurabilir. Hata ayıklıyorsanız çözmek sorunuzu yanıtlar. Bir isteğe güvenilip güvenilmeyeceğine karar veriyorsanız çözmek hiçbir şeyi yanıtlamaz.

Yükü herkes okuyabilir ve insanlar bunu sürekli unutuyor

Bu yukarıdakinden çıkar ve ayrıca söylenmeyi hak eder, çünkü gerçek veri ifşasının kaynağıdır. Bir JWT yükü kodlanmıştır, şifrelenmemiştir. İçindeki her talep — kullanıcı tanımlayıcısı, e-posta adresi, rol, kiracı, eklemesi kolay gelen hangi iç alan varsa — belirteci elinde tutan herkes tarafından görülebilir; verildiği tarayıcı, o tarayıcıda çalışan her uzantı ve sonradan ele geçiren herkes dahil. İmza yükü değiştirilmekten korur, okunmaktan değil. Yani bir belirteç, bir tanımlayıcı ve bir rol için makul, bir adres, bir telefon numarası, birinin utanç verici bulabileceği bir lisans durumu ya da bir zarfın dışına basmayacağınız başka herhangi bir şey için kötü bir yerdir. Bir talebin gizli kalması gerekiyorsa, yeri belirteç değildir.

Belirtecin kendini nasıl doğrulayacağınızı söylemesine asla izin vermeyin

En ünlü JWT açıklarının hepsi tek bir biçimi paylaşır: bir kitaplık başlıktan `alg` alanını okur ve ona güvenir. Tarihsel sürümü `alg: none`’dur; belirteci imzasız ilan eder — buna uyan bir doğrulayıcı her şeyi kabul eder ve saldırgan kendi yükünü yazıp imzayı söker. Daha incelikli sürümü algoritma karışıklığıdır: HMAC ile imzalanmış bir belirteç, RSA bekleyen bir sunucuya sunulur; kod RSA açık anahtarını HMAC sırrı olarak geçirirse ve o açık anahtar yayımlanmışsa, saldırgan onunla belirteç imzalayabilir. İkisi de aynı yolla düzelir: doğrulayan kod hangi algoritmayı ve hangi anahtarı kabul edeceğine kendisi karar verir ve gerisini reddeder; yanıtı, denetlediği belirtecin güvenilmeyen kısmından okumaz.

Zaman damgaları saniyedir ve hiçbir şey onları kendiliğinden dayatmaz

Üç talep, bir belirtecin geçerli olduğu pencereyi belirler. `exp` son kullanma, `nbf` öncesinde kabul edilmemesi gereken zaman, `iat` ise veriliş anıdır. Üçü de Unix döneminden bu yana geçen saniyedir; bu da yerel zaman damgaları milisaniye olan bir dilde çalışan herkesi tökezletir — ortaya çıkan belirteç ya çoktan süresi dolmuş ya da önümüzdeki elli bin yıl geçerlidir ve iki hata da önce denetlenecek kadar yaygındır. Daha önemli nokta şudur: bunlar talep, dayatma değildir. `exp` geçtiğinde belirtecin kendisinde çalışmayı durduran bir şey yoktur; son kullanma yalnızca doğrulayan kod onu şimdiki zamanla karşılaştırıp isteği reddederse vardır. Size süresi dolmuş bir belirteç gösteren çözücü, verenin niyetini söyler; belirli bir sunucunun onunla ne yapacağını değil.

Bir JWT iptal edilemez ve kabul ettiğiniz anlaşma budur

Bu belirteçleri kullanma nedeni durumsuz doğrulamadır: bir sunucu, veritabanı sorgusu olmadan yalnızca bir anahtarla isteğin özgünlüğünü doğrulayabilir; hizmetler arasında ölçeklenmelerini sağlayan da budur. Doğrudan sonucu şudur: silinecek bir şey yoktur. Veritabanında saklanan bir oturum, satırı kaldırdığınız anda biter; imzalanmış bir belirteç ise verende ne olursa olsun süresi dolana dek geçerli kalır, çünkü hiçbir şey verene danışmaz. Sızmış bir belirteç bu yüzden süresi dolana kadar kullanılabilir; erişim belirteçlerinin ömrünün kısa olması gerekmesinin nedeni tam da budur — haftalar değil dakikalar — yanında, depolamaya karşı denetlendiği için iptal edilebilen daha uzun ömürlü bir yenileme belirteciyle. Erişim belirteçleriniz bir ay yaşıyorsa, durumsuzluğun tüm sakıncalarına ve oturumların hiçbir güvenliğine sahipsiniz demektir.

Yerel çözmenin en keskin gerekçesi neden burada

Neredeyse her başka metin aracı, koşullar gereği hassas olan malzemeyle uğraşır. Bir JWT tanımı gereği hassastır: kimlik bilgisinin kendisidir ve geçerli, süresi dolmamış bir belirteç, verildiği kullanıcı gibi davranmaya yeter. Bunu barındırılan bir çözücüye yapıştırmak, iz bırakmayan bir kanaldan çalışan bir kimlik doğrulama bilgisini üçüncü bir tarafa gönderir — üstelik yerel olarak okuyabileceğiniz alanları okumak karşılığında. Belirtecin saatleri kaldıysa, onu alan kişi kullanabilir. Bu sayfa tarayıcıda ayrıştırır ve hiçbir şey iletmez; bunu geliştirici araçlarının Ağ sekmesinde doğrulayabilirsiniz — ve bir üretim belirtecini süresine bakmak için bir siteye yapıştırdıysanız, o belirteci ele geçirilmiş saymak doğru tepkidir.

Kaçınılması gereken yaygın hatalar

  • Başarılı bir çözmeyi geçerli belirteç saymak. Çözmek anahtar gerektirmez ve hiçbir şey kanıtlamaz; belirtecin özgün olduğunu yalnızca imzayı verenin anahtarıyla doğrulamak kurar.
  • Yüke özel veri koymak. O kodlanmıştır, şifrelenmemiştir — imza onun değiştirilmesini engeller, okunmasını değil; belirteci elinde tutan herkes her talebi görür.
  • Doğrulama algoritmasını belirtecin seçmesine izin vermek. Başlıktan `alg` okumak, `alg: none` ve algoritma karışıklığı saldırılarının işleyiş biçimidir; doğrulayıcı algoritmayı ve anahtarı önceden sabitlemelidir.
  • `exp`’i milisaniye yazmak. JWT zaman damgaları dönemden bu yana saniyedir; milisaniyelik bir değer, on binlerce yıl geçerli bir belirteç ya da çoktan süresi dolmuş bir belirteç üretir.
  • Bir üretim belirtecini barındırılan bir çözücüye yapıştırmak. O canlı bir kimlik bilgisidir, yapıştırma iz bırakmaz ve onu alan herkes süresi dolana dek kullanabilir.

Karşılaştırma

ÖlçütBu araçÇevrimiçi çözücülerBir kitaplık çağrısı
Belirteç sunucuya gönderilirAslaGenellikle evetHayır
Zaman damgaları tarih olarakEvetBazenSiz biçimlendirirsiniz
Doğrulamadığı açıkça belirtilirEvetÇoğu kez belirsizAPI’de açık
Proje açmadan çalışırEvetEvetHayır
Hesap veya kayıtGerekmezSık sık istenirGerekmez
FiyatÜcretsizÜcretsiz / ücretli paketÜcretsiz

Özellikler

Tam üç bölüm ayrıştırma

Başlık, yük ve imza bölümü, biçimin tanımladığı gibi ayrı ayrı gösterilir.

base64url doğru işlenir

JWT’ler dolgusuz URL güvenli alfabeyi kullanır; düz bir Base64 çözücü bunu yanlış yapar.

Standart talepler adlandırılmış

`iss`, `sub`, `aud`, `exp`, `nbf`, `iat` ve `jti` kısaltma olarak bırakılmaz, adlandırılır.

Bozuk belirteçler işaretlenir

Eksik bir bölüm ya da geçersiz kodlama, kısmi saçmalık üretmek yerine bildirilir.

Taleplerdeki Unicode korunur

Türkçe, Arapça ya da herhangi bir yazıdaki adlar ve değerler sağlam çözülür.

Anında, istek yok

Ayrıştırma siz yapıştırırken olur; hiçbir şey çekilmez ve hiçbir şey gönderilmez.

Kurulum gerekmez

Kitaplık, çalışma ortamı ya da bağımlılık yok — web sayfasında çalışır.

Arapça ve RTL uyumlu

Sağdan sola Arapça dahil sekiz dilde tam arayüz.

Varsayılan olarak güvenli

HTTPS üzerinden sunulur, içerik izleme ve üçüncü tarafa yükleme yoktur.

Kimler kullanıyor

Geliştiriciler

Bir API çağrısının neden reddedildiğini denetlemek — genellikle süresi dolmuş bir belirteç ya da yanlış hedef kitle.

Güvenlik mühendisleri

Bir günlükte ya da hata raporunda bulunan bir belirtecin taleplerini ve algoritmasını incelemek.

API entegratörleri

Bir sağlayıcının gerçekte hangi kapsam ve rolleri verdiğini, ona karşı kod yazmadan önce doğrulamak.

Destek mühendisleri

Müşterinin verdiği bir belirteci okuyup hangi hesaba ve kiracıya ait olduğunu görmek.

Sıkça Sorulan Sorular

Hayır. Her şey tarayıcınızda yerel çalışır — metniniz asla yüklenmez, saklanmaz veya paylaşılmaz.

Evet — tamamen ücretsiz, hesap ve sınır yok.