Web projelerinde kullanıcı giriş sistemi (login system), saldırıya en açık bölümlerden biridir. Özellikle PHP ile geliştirilen sistemlerde güvenliğe dikkat edilmediğinde XSS, SQL Injection, Session Hijacking gibi ataklar sisteminizi tehdit eder.
Bu yazıda, sıfırdan güvenli bir PHP giriş sistemi kurmanın temel prensiplerini ve dikkat edilmesi gereken noktaları paylaşacağım.
En Yaygın Saldırılar ve Önlemleri
- SQL Injection Kullanıcının girdiği veriler doğrudan SQL sorgusuna aktarılırsa, saldırgan veritabanınızı silebilir veya kullanıcı bilgilerine erişebilir.
Çözüm:
Her zaman prepared statements (PDO veya MySQLi) kullanın:
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$stmt->execute(['email' => $email]);
2. XSS (Cross-Site Scripting)
Formlardan gelen veriler filtrelenmeden ekrana yazılırsa, saldırgan kötü amaçlı JavaScript kodları çalıştırabilir.
Basit Çözüm:
formdan gelen verileri bir clean funcksiyondan geçirdikten sonra, Çıktıları htmlspecialchars()
ile güvenli hale getirin: echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');
3. Session Hijacking
Kullanıcı oturumu ele geçirilirse, saldırgan tüm işlemleri onun adına gerçekleştirebilir.
Çözüm:
session_regenerate_id(true)
ile her login işleminden sonra session ID yenileyin.
HTTPS zorunluluğu ve SameSite
, HttpOnly
, Secure
cookie ayarlarını kullanın.
Güvenli Giriş Sistemi İçin Ekstra İpuçları
Şifreleri daima password_hash()
türlerinden biri ile şifreleyin.
Brute force saldırılarına karşı giriş deneme limiti koyun.
CSRF token kullanın.
Gerçek Hayatta Kullanım Örneği:
PHP ile geliştirilmiş bir ulaşım hizmeti sistemi olan mavitaksi.com, kullanıcı deneyimini ve güvenliği ön planda tutarak php pdo ile geliştirilmiştir. Bu sistemde hem müşteri paneli hem de yönetici girişleri için güvenlik önlemleri titizlikle uygulanmıştır.
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.