Bugün, form verileri üzerinde yapılan saldırılardan, SQL enjeksiyonlarından ve XSS (Cross-site Scripting) gibi güvenlik açıklarından nasıl korunabileceğimize dair bazı temel ipuçlarına göz atacağız. Bu yazıda hem yeni başlayanlar hem de deneyimli geliştiriciler için faydalı bilgiler bulacaksınız.
1. Veri Doğrulama ve Temizleme
En iyi uygulama: Form verilerini doğrulamak ve temizlemek için PHP, JavaScript veya bir framework kullanabilirsiniz. Ancak, asıl işleme her zaman sunucu tarafında yapılmalıdır, çünkü istemci tarafı doğrulama atlanabilir.
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
// Geçerli e-posta
} else {
echo "Geçersiz e-posta adresi";
}
2. SQL Enjeksiyonlarına Karşı Önlemler
En iyi uygulama: Veritabanı sorgularında her zaman prepared statements kullanın. Bu, kullanıcı verilerini doğrudan SQL sorgularına dahil etmek yerine, sorguyu hazırlayıp kullanıcı verilerini parametre olarak geçireceğiniz güvenli bir yöntemdir.
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$stmt->execute(['email' => $email]);
3. XSS (Cross-site Scripting) Saldırılarına Karşı Korunma
En iyi uygulama: Verilerin ekrana basılmadan önce HTML özel karakterlerini encode edin. Bu şekilde, HTML veya JavaScript kodu çalıştırmak mümkün olmaz.
document.getElementById("output").innerHTML =
document.createTextNode(userInput);
4. CSRF (Cross-site Request Forgery) Koruması Ekleyin
En iyi uygulama: Her formda benzersiz bir token kullanarak, formun gerçekten orijinal kullanıcının isteğiyle gönderildiğinden emin olabilirsiniz. Bu token’ı her formda kontrol edin.
5. Şifreleri Güvenli Bir Şekilde Saklayın
En iyi uygulama: PHP’nin password_hash() ve password_verify() fonksiyonlarını kullanarak şifreleri güvenli bir şekilde hash’leyebilirsiniz.
$hashedPassword = password_hash($password, PASSWORD_BCRYPT);
if (password_verify($password, $hashedPassword)) {
// Şifre doğru
} else {
// Hatalı şifre
}
6. HTTPS Kullanarak Veri İletimini Şifreleyin
En iyi uygulama: Her zaman HTTPS protokolünü kullanarak verilerinizi güvenli bir şekilde iletin. Bu, veri iletiminin şifrelenmesini sağlar ve man-in-the-middle (MITM) saldırılarına karşı koruma sağlar.
7. Güvenlik Duvarları ve Rate Limiting Uygulayın
En iyi uygulama: Uygulamanızda güvenlik duvarı kullanın ve şüpheli aktiviteleri tespit ederek önlem alın.
İçerik Sonu
Geliştiriciler olarak, form verilerini güvenli bir şekilde işlemek, yalnızca kullanıcı verilerinin güvenliğini sağlamakla kalmaz, aynı zamanda web uygulamanızın güvenilirliğini ve itibarı artırır. Bu yazıda, form verileri güvenliğiyle ilgili en önemli güvenlik açıklarını ele aldık ve bunlardan nasıl korunabileceğimizi gösterdik.
Unutmayın, küçük güvenlik önlemleri büyük farklar yaratabilir. Web uygulamanızı sürekli olarak gözden geçirin ve güvenliği ön planda tutarak kullanıcılarınızın verilerini koruyun.