PHP ile Güvenli Giriş (Login) Sistemi Mantığı

Bir giriş sisteminin güvenli olması için sadece kullanıcı adı ve şifreyi kontrol etmek yetmez. PDO kullanarak SQL Injection engellenmeli, Session ile oturum takibi yapılmalı ve CSRF token ile dış müdahaleler önlenmelidir.

Güvenli Bir Giriş Sisteminin Adımları

  • 1. Session Başlatma: Kullanıcı verilerini tarayıcı kapanana kadar saklamak için.
  • 2. CSRF Kontrolü: Formun gerçekten sizin sitenizden gönderildiğinden emin olmak için.
  • 3. PDO Prepared Statements: Veritabanı sorgularına zararlı kod sızmasını önlemek için.
  • 4. Password Hash: Şifreleri veritabanında asla düz metin olarak saklamamak (password_hash) için.

Kod Örneği: Login Algoritması (Mantıksal Akış)

PHP Secure Login Logic
<?php
session_start(); // 1. Oturumu başlat

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // CSRF Token Kontrolü
    if (!isset($_POST['token']) || $_POST['token'] !== $_SESSION['token']) {
        die("Geçersiz istek (CSRF Detected)!");
    }

    $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
    $pass  = $_POST['password'];

    // 2. PDO ile Güvenli Sorgu
    $query = $db->prepare("SELECT * FROM users WHERE email = :email");
    $query->execute(['email' => $email]);
    $user = $query->fetch();

    // 3. Şifre Doğrulama (password_verify)
    if ($user && password_verify($pass, $user['password'])) {
        $_SESSION['user_id'] = $user['id'];
        header("Location: dashboard.php");
        exit();
    } else {
        echo "Hatalı e-posta veya şifre!";
    }
}

// 4. CSRF Token Oluşturma
$_SESSION['token'] = bin2hex(random_bytes(32));
?>
💡 Güvenlik İpucu: Kullanıcı giriş yaptıktan sonra session_regenerate_id(true) fonksiyonunu çağırmak, "Session Fixation" saldırılarına karşı ek koruma sağlar.

Şifre Güvenliği: Neden md5() Kullanmamalısınız?

md5() ve sha1() gibi yöntemler artık günümüz işlemci güçleri karşısında savunmasızdır. PHP'nin güncel standartı olan password_hash() ve password_verify() fonksiyonları, her şifre için otomatik "salt" oluşturarak güvenliği en üst düzeye çıkarır.