İçeriğe atla
FerdiGidenby FerdiSoftBETA v2.4
Güvenlik

Giriş Formunda Kullanıcı Bilgisi Sızdırmayan Hata Mesajları

Giriş Formunda Kullanıcı Bilgisi Sızdırmayan Hata Mesajları hakkında dağınık bilgiler yerine derli toplu bir kaynak arıyorsanız doğru yerdesiniz. Bu yazı 5 temel noktayı ve bunları bir araya getiren PHP örneğini sade bir dille açıklıyor.

Ferdi GidenFerdi Giden 2 dk okuma 2
Giriş Formunda Kullanıcı Bilgisi Sızdırmayan Hata Mesajları
İçindekiler
  1. Temel kavram ve amaç
  2. Öne çıkan noktalar
  3. PHP ile uygulama
  4. Avantajları
  5. Son söz

Giriş Formunda Kullanıcı Bilgisi Sızdırmayan Hata Mesajları hakkında dağınık bilgiler yerine derli toplu bir kaynak arıyorsanız doğru yerdesiniz. Bu yazı 5 temel noktayı ve bunları bir araya getiren PHP örneğini sade bir dille açıklıyor.

Temel kavram ve amaç

"Bu e-posta adresi kayıtlı değil" mesajı kullanıcıya yardımcı görünür; ama saldırgana hangi adreslerin sitenizde hesabı olduğunu söyler. Bu bilgi, hedefli kimlik avı ve şifre deneme saldırılarının ilk adımıdır. Giriş, kayıt ve şifre sıfırlama ekranlarında aynı genel mesajı vermek bu sızıntıyı kapatır.

Öne çıkan noktalar

  • Tek tip mesaj: Giriş hatasında "e-posta ya da şifre hatalı" deyin; hangisinin yanlış olduğunu belirtmeyin.
  • Şifre sıfırlamada da: Adres kayıtlı olsun olmasın aynı onay mesajını gösterin; e-postayı yalnız adres kayıtlıysa gönderin.
  • Zamanlama sızıntısı: Kullanıcı bulunamadığında da şifre doğrulaması yapmak, yanıt süresinden bilgi çıkarılmasını önler.
  • Kayıt ekranı: "Bu adres zaten kayıtlı" demek yerine adresin sahibine e-postayla bilgi vermek sızıntıyı tamamen kapatır.
  • Hız sınırı: Genel mesaj tek başına yetmez; IP ve hesap başına deneme sınırıyla birlikte uygulanmalıdır.

PHP ile uygulama

Aşağıdaki PHP örneği, yukarıdaki noktaların gerçek bir kodda nasıl bir araya geldiğini gösteriyor:

// Geçerli bir bcrypt özeti: kullanıcı yoksa da aynı sürede doğrulama yapılır
const SAHTE_OZET = '$2y$10$gGBs4xcqXpgykAdbF/i4VOxr3ToXVYrOqck.fkH1vrRXlD4Ceutke';

$uye = $vt->satir('SELECT id, sifre FROM uyeler WHERE eposta = ?', [$eposta]);
$dogru = password_verify($sifre, $uye['sifre'] ?? SAHTE_OZET) && $uye !== null;

if (!$dogru) {
    $hata = 'E-posta adresi ya da şifre hatalı.';   // hangisinin yanlış olduğu söylenmez
} else {
    girisYap($uye);
}

// Şifre sıfırlama: adres kayıtlı olsun olmasın aynı mesaj
$mesaj = 'Bu adres kayıtlıysa şifre sıfırlama bağlantısı gönderildi.';

Örneği kendi projenize uyarlarken değişken adlarını ve yapılandırma değerlerini ortamınıza göre değiştirmeyi unutmayın.

Kullanıcıdan gelen veriyi ekrana basarken htmlspecialchars() ile kaçışlamak XSS saldırılarının önüne geçer.

Avantajları

Kısaca özetlemek gerekirse:

  • Saldırı yüzeyini daraltır ve olası veri sızıntılarının önüne geçer
  • Güvenlik denetimlerinden daha kolay geçen bir kod tabanı sağlar
  • Hataların canlı ortama çıkmadan fark edilmesine yardım eder
  • Kullanıcı güvenini ve marka itibarını korur

Son söz

Giriş Formunda Kullanıcı Bilgisi Sızdırmayan Hata Mesajları konusunda ele aldığımız 5 nokta, günlük çalışmada en sık ihtiyaç duyulan kısmı kapsıyor. Özellikle Tek tip mesaj ve Hız sınırı başlıklarını uygulamaya geçirmek iyi bir başlangıç olur.

İlgili içerikler:

Daha fazla uygulamalı içerik için Akademi derslerine ve blog yazılarına göz atabilirsiniz.

Paylaş:
Ferdi Giden

Yazar

Ferdi Giden @admin
Sistem YöneticisiDoğrulanmış GeliştiriciBeta KullanıcıFerdiSoft KatılımcısıDoğrulanmış ProfilGüvenlik Bilinci

PHP, MySQL ve Tailwind ile kurumsal yazılımlar geliştiriyor; FerdiSoft çatısı altında ERP, WMS ve SaaS çözümleri üretiyor.

Yorumlar 0

Yorum yapmak ve tartışmaya katılmak için giriş yapın. Rozetleriniz yorumlarınızda görünür.

Henüz yorum yok. İlk yorumu siz yazın!

Ücretsiz Teklif Al