Php 8 Form Güvenliği

Php 8 Form Güvenliği

PHP 8'de form güvenliği, web uygulamalarında kullanıcıdan alınan girdilerin güvenli şekilde işlenmesini ve saldırılara karşı korunmasını amaçlar. Form güvenliği sağlanmazsa, saldırganlar çeşitli güvenlik açıklarını kullanarak sisteme zarar verebilir. İşte PHP 8'de form güvenliği için alınması gereken önlemler:

1. CSRF (Cross-Site Request Forgery) Koruması

CSRF, kullanıcıdan habersiz bir şekilde istek yapmayı sağlayan bir saldırı türüdür. PHP ile CSRF koruması sağlamak için:

  • Formlara CSRF token eklenir.
  • Form gönderildiğinde sunucuda bu token doğrulanır.

Örnek:

// Formda CSRF token ekleme <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>"> // Form gönderildiğinde token doğrulama if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) { die('CSRF token doğrulaması başarısız!'); }

2. XSS (Cross-Site Scripting) Koruması

XSS, saldırganların zararlı JavaScript kodlarını diğer kullanıcıların tarayıcılarında çalıştırmasını sağlar. Kullanıcı girdilerini güvenli bir şekilde işlemek için:

  • Formdan alınan veriler, HTML içeriğine eklenmeden önce htmlspecialchars gibi fonksiyonlarla temizlenmelidir.

Örnek:

// XSS koruması için kullanıcı girdisini temizleme $input = htmlspecialchars($_POST['input'], ENT_QUOTES, 'UTF-8');

3. SQL Injection Koruması

Kullanıcı girdilerini SQL sorgularına doğrudan dahil etmek, SQL enjeksiyonuna neden olabilir. Bunu önlemek için:

  • Veritabanı sorguları hazırlıklı ifadeler (prepared statements) ile yapılmalıdır.

Örnek:

$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email'); $stmt->execute(['email' => $_POST['email']]);

4. Veri Doğrulama ve Filtreleme

Kullanıcıdan gelen her veri doğru formatta mı diye kontrol edilmelidir:

  • filter_var fonksiyonu, belirli veri türleri (e-posta, URL vb.) için kullanılabilir.

Örnek:

// E-posta doğrulaması if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { die('Geçersiz e-posta adresi'); }

5. Şifreli Veri Gönderimi (HTTPS)

Form gönderimlerinin güvenli bir şekilde iletilmesi için HTTPS kullanmak önemlidir. HTTPS, formdaki verilerin sunucuya şifreli bir şekilde iletilmesini sağlar.

6. Şifreli Parola Saklama

Kullanıcı şifreleri password_hash fonksiyonu ile hashlenerek saklanmalıdır.

// Şifre hashleme $hashedPassword = password_hash($_POST['password'], PASSWORD_DEFAULT);

7. Dosya Yükleme Güvenliği

Form aracılığıyla yüklenen dosyalar kontrol edilmelidir. Yüklenen dosyanın türü, boyutu ve ismi doğrulanmalıdır.

// Dosya türü kontrolü $allowedTypes = ['image/jpeg', 'image/png']; if (!in_array($_FILES['file']['type'], $allowedTypes)) { die('Geçersiz dosya türü'); }

Bu yöntemler, PHP 8 ile form güvenliği sağlamak için önemli adımlardır.



Yorum Ekle

Üzerine gel