Web uygulamalarında form kullanımı oldukça yaygındır ve PHP ile güvenli ve kullanışlı formlar oluşturmak büyük önem taşır.
Bu yazıda sizlere PHP kullanarak form doğrulama ve güvenli veri işleme yöntemlerini örnekle göstermeye çalışacağım.
1. Basit Bir HTML Formu
Bir form oluşturalım ve kullanıcıdan ad, e-posta ve mesaj bilgilerini alalım:
session_start();
if (empty($_SESSION['csrf_token'])) {
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
<form action="process.php" method="post">
<input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>">
<label for="name">Ad:</label>
<input type="text" name="name" id="name" required>
<label for="email">E-posta:</label>
<input type="email" name="email" id="email" required>
<label for="message">Mesaj:</label>
<textarea name="message" id="message" required></textarea>
<button type="submit">Gönder</button>
</form>
2. PHP ile Form Verisini İşleme
Aşağıdaki PHP kodu, formdan gelen verileri işleyerek güvenli bir şekilde saklayacaktır:
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
die("Geçersiz CSRF token!");
}
$name = htmlspecialchars(trim($_POST['name']));
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$message = htmlspecialchars(trim($_POST['message']));
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Geçersiz e-posta adresi!";
} else {
echo "Teşekkürler, mesajınız alındı.";
// Burada veritabanına kaydedebilir veya e-posta gönderebilirsiniz.
}
}
3. Güvenlik Önlemleri
- CSRF Koruması: Formlara bir CSRF token ekleyerek sahte istekleri önleyin.
- XSS Koruması: Kullanıcı girdilerini
htmlspecialchars()
fonksiyonu ile temizleyin. - SQL Enjeksiyonuna Karşı Koruma: PDO kullanarak parametreli sorgularla veri işleyin.
Yorum gönder