1. Parolayı geri okuyabilmen gerekmiyor
Bir giriş sisteminde kullanıcının parolasını sonradan düz metin olarak elde etmek gerekmemelidir. Giriş sırasında gelen değeri kayıtlı hash ile doğrulamak yeterlidir. Düz metin veya geri çözülebilir bir şifreleme yöntemi, veri sızıntısında farklı bir risk yaratır.
Genel amaçlı hızlı hash fonksiyonlarını doğrudan parola saklama yöntemi olarak seçme. PHP'nin password_hash ve password_verify işlevleri parola için tasarlanmış akışı sağlar. Kullanılan algoritma ve maliyet seçimini hizmetin çalışma koşullarında ölçmek gerekir; bütün sunuculara tek bir sayı önermek doğru değildir.
2. Hash üret ve doğrula
Aşağıdaki küçük örnek kayıt ve giriş adımlarındaki temel ilişkiyi gösterir. Gerçek uygulamada gelen değer uzunluk sınırıyla doğrulanmalı, aktarım HTTPS üzerinden yapılmalı ve hash güvenli veritabanı işleminde saklanmalıdır. Kullanıcının parolasını veya üretilen hash'i günlük kaydına yazma.
PASSWORD_DEFAULT ileride farklı varsayılan algoritmaya geçebilir. Bu nedenle hash sütununu yalnızca bugünkü bir uzunluğa göre dar tutmamak gerekir; PHP belgesi daha geniş bir sütun önerir. Örnekte salt değeri elle oluşturulmuyor; fonksiyon uygun biçimde yönetir.
// Kayıt sırasında:
$hash = password_hash($password, PASSWORD_DEFAULT);
// $hash değerini uygun uzunlukta bir sütunda sakla.
// Giriş sırasında:
if (!password_verify($submittedPassword, $storedHash)) {
// Kullanıcıya genel bir başarısız giriş mesajı ver.
return;
}
// Sonraki adım: güvenli oturum oluştur ve kimliği yenile.3. Başarılı girişte yeniden hash ihtiyacını kontrol et
Algoritma veya maliyet ayarı değiştiğinde eski hash'lerin tek seferde yeniden hesaplanması mümkün değildir; düz parolalar saklanmamalıdır. Kullanıcı başarılı giriş yaptığında password_needs_rehash ile kayıtlı hash'in güncel ayara uyup uymadığını kontrol edebilirsin. Gerekirse o anda verilen paroladan yeni hash üret.
Bu işlem yalnızca parola başarıyla doğrulandıktan sonra yapılmalıdır. Güncelleme sırasında kayıt kimliğini ve eşzamanlı değişiklikleri doğru ele al. Parola sıfırlama akışı ve oturumlar için ayrı süre ve iptal kuralları gerekir; hash işlevi bunları kendi başına sağlamaz.
4. Hash, giriş sisteminin yalnızca bir katmanıdır
Tekrarlı denemeleri sınırlamak, güvenli oturum çerezi, oturum kimliği yenileme ve parola sıfırlama tokenlarının süreli oluşu ayrı gereksinimlerdir. “Kullanıcı bulunamadı” ve “parola yanlış” mesajlarının hesap varlığını istemeden açığa çıkarıp çıkarmadığını değerlendir.
Uzun parolalar için destek verdiğini söylerken kullandığın algoritmanın sınırlarını incele. Özellikle bcrypt'in bayt sınırları nedeniyle çok baytlı karakterler ve uzun girdiler beklenmedik kesilme yaratabilir. Algoritmayı, girdi politikasını ve sunucu kapasitesini birlikte değerlendir.
5. Kontrolü gerçek akışta yap
Yeni kayıt, doğru parola, yanlış parola ve hash ayarı değiştikten sonraki başarılı giriş için ayrı kontroller yap. Hash üretim süresini hedef ortamda ölç; CPU baskısını ve eşzamanlı giriş sayısını düşün. Yerel makinedeki hızlı sonuç, küçük bir sunucudaki performansı temsil etmeyebilir.
Bu örnek tam bir kimlik doğrulama sistemi değildir. Bir framework'ün mevcut, bakımlı giriş mekanizması varsa sırf kısa bir örnek için yeniden yazmak yerine o mekanizmanın ayarlarını ve güncel belgesini kullan. Amaç temel ilişkiyi anlamak ve doğru sınırda uygulamaktır.
Kaynaklar ve kontrol notu
Bu rehber yapay zekâ desteğiyle hazırlanmış özgün bir editoryal içeriktir. Kaynak kontrolü: 30 Eylül 2026. Örnekleri kendi proje koşullarına uyarlayarak doğrula.
Bir hata fark ettiysen editörlüğe bildir; düzeltmeleri güncelleme tarihiyle işleriz.


