Parola sıfırlama testleri neden ihmal edilir
Çoğu geliştirici parola sıfırlama akışını kendi e-posta adresiyle bir kez test eder ve tamamlandı sayar. Beşinci test çalışmasından sonra gelen kutunuz aynı görünen "Parolanızı sıfırlayın" mesajlarıyla dolup taşar. Hangi bağlantının hangi çalışmaya ait olduğunu takip edemezsiniz ve sonunda çok sinir bozucu olduğu için kapsamlı testleri bırakırsınız. Tam olarak bu tür umursamazlık, ciddi hataların üretime girmesine izin verir.
Parola sıfırlama akışında gerçekte ne test etmeniz gerekiyor
Basit bir "e-posta gönderiyor mu" kontrolü yeterli değildir. OWASP Authentication Cheat Sheet, kapsamlı gereksinimler listesi açıklar:
- E-posta teslimi — sıfırlama e-postası geliyor mu, ve hızlı mı geliyor?
- Bağlantı doğruluğu — e-postadaki bağlantı doğru jeton ile doğru sayfaya gidiyor mu?
- Jeton süresi dolumu — 25 saat sonra bağlantıya tıklandığında süresi dolmuş jeton doğru reddediliyor mu?
- Tek kullanım — aynı sıfırlama bağlantısı iki kez kullanılabiliyor mu? Kullanılmamalı.
- Yeni istekte jeton geçersizleştirme — kullanıcı tekrar sıfırlama isterse ilk jeton geçersiz hale geliyor mu?
- SSO hesapları — OAuth ile kayıtlı kullanıcılar için ne oluyor?
- Hız sınırlaması — adres başına sıfırlama isteklerine sınır var mı?
Geçici e-posta yaklaşımı — adım adım
En temiz çözüm, her test çalışması için yeni bir geçici e-posta adresi kullanmaktır. Geçici bir gelen kutusu açın, adresi kopyalayın, uygulamanızda bir test hesabı kaydedin, sıfırlama tetikleyin ve e-postanın gerçek zamanlı olarak gelmesini izleyin. Bağlantıya tıklayın, tam akışı doğrulayın ve girişin çalıştığını onaylayın. Başka bir senaryo için sadece yeni bir tarayıcı sekmesi açın.
Jeton güvenlik kontrol listesi
Parola sıfırlama jetonları yaygın bir saldırı yüzeyidir. OWASP'a göre güvenli bir uygulama şunları karşılamalıdır:
- En az 32 karakter, kriptografik olarak rastgele oluşturulmuş
- 24 saat içinde sona ermeli, ideal olarak 1 saat içinde
- Tek kullanımlık — kullanımdan hemen sonra geçersiz
- Yeni bir sıfırlama istendiğinde geçersiz hale gelmeli
- E-posta adresi başına hız sınırlamalı
- Hiçbir zaman düz metin olarak kaydedilmemeli
Parola sıfırlamayı regresyon paketinize dahil edin
Parola sıfırlama, kimlik doğrulama kütüphaneleri güncellendiğinde sessizce bozulur. En azından temel bir uçtan uca test ekleyin: programatik olarak bir test hesabı oluşturun, sıfırlama tetikleyin, giden e-postayı yakalayın ve jetonu doğrulayın. MXToolbox ile etki alanınızın kimlik doğrulama yapılandırmasını kontrol edin ve gerçek güvenlik ihlalleri hakkında derinlemesine perspektif için Troy Hunt'ın bloguna bakın.