Gerçek Gelen Kutuları Olmadan OAuth Kurtarma E-postalarını Test Edin

OAuth kurtarma e-postalarını kolay yoldan test etmek güvenlik riskleri oluşturur. Birçok ekip, şifre sıfırlama bağlantılarını tek bir ortak gelen kutusuna gönderir. E-postanın gelip gelmediğini kontrol eder ve devam ederler. Bu yöntem zayıftır. Token'ın yeniden kullanımını, yanlış kullanıcıya teslimatı ve hassas günlük (log) verilerini gizler.

Her test çalışması için geçici bir e-posta adresi kullanın. Olayı izole edin, inceleyin ve verileri silin. Bu, karışık test verilerinin sonuçlarınızın kanıtlanmasını zorlaştırmasını önler.

İyi bir tehdit modeli şu soruları sormalıdır:

  • Mesaj, bu özel çalışma için hedeflenen gelen kutusuna ulaştı mı?
  • Bağlantı veya kod, süresi dolması gerektiğinde doluyor mu?
  • Konu satırı çok fazla kullanıcı verisi ifşa ediyor mu?
  • Yeni bir istekten sonra eski bir token çalışabiliyor mu?
  • Günlükler (logs), kurtarma sırlarını gereğinden daha uzun süre saklıyor mu?

En iyi model, her test yürütme işlemi için bir gelen kutusu kullanmaktır. Bu, her bağlantıyı ve zaman damgasını tek bir çalışmaya bağlı tutar.

Bu akışı izleyin:

  • Yeni bir kullanıcı fixture'ı veya sandbox kimliği oluşturun.
  • Kurtarma e-postasını çalışma kapsamındaki bir gelen kutusuna yönlendirin.
  • OAuth veya şifre kurtarma işlemini bir kez tetikleyin.
  • Tam olarak bir eşleşen e-postanın geldiğini doğrulayın (assert).
  • Süre dolumu ve tek kullanımlık davranışını doğrulamak için bağlantıyı veya kodu açın.
  • Gelen kutusunu ve fixture verilerini hemen yok edin.

Eğer süreciniz dünden kalan eski e-postaları kontrol etmeyi gerektiriyorsa, süreciniz hatalıdır. Kurtarma kanıtı asla bayat verilere dayanmamalıdır.

Yayına almadan önce şu noktaları kontrol edin:

  • Alıcı takma adı (alias), test kimliği ile eşleşiyor.
  • Olay için yalnızca bir geçerli kurtarma mesajı mevcut.
  • Konu ve önizleme hassas verileri ifşa etmiyor.
  • Kurtarma URL'si doğru ortama (environment) işaret ediyor.
  • Token, kullanım veya sürenin dolmasından sonra geçersiz hale geliyor.
  • Yeniden deneme davranışı birden fazla geçerli token'ın aktif kalmasına neden olmuyor.

Bu yaygın hatalardan kaçının:

  • Bir gelen kutusunu birkaç test kullanıcısı için yeniden kullanmak.
  • Kurtarma URL'lerini uzun ömürlü günlüklerde (logs) saklamak.
  • Kurtarma konularına tam e-posta adreslerini dahil etmek.
  • İkinci bir istekten sonra eski bağlantıları geçersiz kılmayı unutmak.

Staging verileri önemlidir. Genellikle gerçekçi isimler ve yapılandırmalar içerir. Güvenli varsayılanlar kullanın: kısa saklama süresi, tek kullanımlık sırlar ve açık temizleme (cleanup).

Kaynak: https://dev.to/sophiax99/how-to-test-oauth-recovery-emails-without-exposing-real-inboxes-hni