Ulu Önder Mustafa Kemal Atatürk'ü aramızdan ayrılışının 88. yılında saygı, minnet ve özlemle anıyoruz.

Oturum (session) mu JWT mi? Web uygulamalarında kimlik doğrulama

kaan.yildiz Mid 2 saat önce · 0 görüntülenme

Giriş sistemi kurarken en çok sorulan sorulardan biri: "Klasik oturum mu kullanayım, JWT mi?" İkisi de doğru kullanıldığında güvenlidir. Aradaki fark, durumun nerede tutulduğudur.

Oturum (session) nasıl çalışır?

  1. Kullanıcı giriş yapar, sunucu rastgele bir oturum kimliği üretir.
  2. Kullanıcı bilgisi sunucuda (dosya, veritabanı, Redis) bu kimlikle saklanır.
  3. Tarayıcıya sadece kimlik çerez olarak gönderilir.

Artıları: Oturumu anında iptal edebilirsin (çıkış, şifre değişikliği, hesabı askıya alma). Çerez HttpOnly olduğu için JavaScript okuyamaz.

Eksileri: Birden fazla sunucu varsa oturum deposunun ortak olması gerekir (Redis gibi).

JWT nasıl çalışır?

JWT, sunucunun imzaladığı bir metindir. İçinde kullanıcı kimliği, rolü ve son kullanma zamanı gibi bilgiler bulunur. Sunucu her istekte imzayı doğrular, veritabanına bakması gerekmez.

Artıları: Durumsuzdur, farklı servisler aynı anahtarla doğrulayabilir. Mobil uygulama ve servisler arası iletişimde pratiktir.

Eksileri: Süresi dolmadan geri alınamaz. Kullanıcıyı askıya alsan bile elindeki token geçerliliğini korur. Bunu çözmek için kara liste tutarsan, aslında yeniden oturum deposu kurmuş olursun.

Sık yapılan hatalar

  • JWT'yi localStorage'da saklamak: Sitede bir XSS açığı varsa token çalınır. Tarayıcı uygulamalarında HttpOnly; Secure; SameSite çerez daha güvenlidir.
  • Uzun ömürlü erişim token'ı: Erişim token'ını kısa (ör. 15 dakika) tut, yenileme için ayrı bir refresh token kullan ve refresh token'ı sunucuda iptal edilebilir yap.
  • İmza algoritmasını doğrulamamak: Kütüphanende kabul edilen algoritmayı açıkça belirt, none algoritmasını kabul eden yapılandırmalardan kaçın.
  • Token içine gizli bilgi koymak: JWT şifreli değildir, sadece imzalıdır. İçeriği base64 çözen herkes okuyabilir.
  • Çerez kullanıp CSRF'i unutmak: Çerezle kimlik doğrulama yapıyorsan form ve isteklerde CSRF koruması ya da SameSite=Lax/Strict gerekir.

Hangisini seçmeli?

Durum Öneri
Klasik web sitesi, tek sunucu veya birkaç sunucu Oturum + çerez
Mobil uygulama veya üçüncü taraf istemcilerin kullandığı API Kısa ömürlü JWT + iptal edilebilir refresh token
Mikroservisler arası kimlik aktarımı JWT

Kural olarak: çoğu web uygulaması için oturum daha basit ve daha az hataya açıktır. JWT'yi "modern" olduğu için değil, durumsuz doğrulamaya gerçekten ihtiyacın olduğu için seç.

0

0 cevap

Henüz cevap yok. İlk cevabı sen yaz.

Cevap yaz

Cevap yazmak için giriş yapmalısın.

Konu bilgisi
  • Açılış10.11.2026
  • Son etkinlik1 saat önce
  • Cevap0
  • Görüntülenme0
  • Beğeni0
Yeni konu aç