Web uygulamaları, kullanıcıların veri göndermesi ve bunlara yanıt vermesi için HTML formlarını kullanır. Bu formlar, kullanıcıların giriş yapmasını, mesaj göndermesini, kayıt olmasını ve daha birçok etkileşimi gerçekleştirmesini sağlar. Ancak, kullanıcıların gönderdiği veriler güvenilir değilse, uygulama güvenlik açıklarıyla karşı karşıya kalabilir. Bu makalede, PHP ile form işlemlerini nasıl yönetebileceğinizi ve veri doğrulama teknikleriyle kullanıcıdan gelen verileri nasıl güvenli bir şekilde işleyebileceğinizi öğreneceksiniz.
- Form Oluşturma ve Veri Alma
HTML formunu oluşturmak için <form> etiketini kullanırız. Formun gönderileceği URL'yi action özelliğiyle belirleriz ve hangi metotla (GET veya POST) verilerin gönderileceğini method özelliğiyle ayarlarız. İşte basit bir form örneği:
<form action="form_islem.php" method="post">
<label for="ad">Adınız:</label>
<input type="text" id="ad" name="ad" required>
<label for="email">E-posta:</label>
<input type="email" id="email" name="email" required>
<input type="submit" value="Gönder">
</form>
- Veri Doğrulama ve Güvenlik
<?php
$email = $_POST["email"];
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Geçersiz e-posta adresi!";
} else {
echo "Geçerli e-posta adresi: $email";
}
?>
- Sayı Doğrulama:
<?php
$yas = $_POST["yas"];
if (!is_numeric($yas)) {
echo "Yaş bir sayı olmalı!";
} else {
echo "Yaşınız: $yas";
}
?>
- Özel Veri Doğrulama İşlevleri
<?php
function telefon_formati_kontrol($telefon) {
return preg_match("/^\+?[0-9]{10,14}$/", $telefon);
}
$telefon = $_POST["telefon"];
if (!telefon_formati_kontrol($telefon)) {
echo "Geçersiz telefon numarası!";
} else {
echo "Geçerli telefon numarası: $telefon";
}
?>
- Verileri Güvenli Bir Şekilde İşleme
<?php
$ad = $_POST["ad"];
$email = $_POST["email"];
$sql = "INSERT INTO kullanici (ad, email) VALUES (?, ?)";
$stmt = $baglanti->prepare($sql);
$stmt->execute([$ad, $email]);
echo "Kayıt başarıyla eklendi.";
?>
- XSS ve Veri Temizleme
<?php
$kullanici_girdisi = $_POST["girdi"];
$temiz_girdi = htmlspecialchars($kullanici_girdisi, ENT_QUOTES, 'UTF-8');
echo "Güvenli veri: $temiz_girdi";
?>
- CSRF Koruması
<?php
session_start();
if (!isset($_SESSION['csrf_token'])) {
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
echo '<form action="form_islem.php" method="post">';
echo '<input type="hidden" name="csrf_token" value="' . $_SESSION['csrf_token'] . '">';
echo '<!-- Form içeriği buraya gelecek -->';
echo '</form>';
?>
- PDO ile Parametreli Sorgular
<?php
$kullanici_id = $_POST["id"];
$sql = "SELECT * FROM kullanici WHERE id = :kullanici_id";
$stmt = $baglanti->prepare($sql);
$stmt->bindValue(':kullanici_id', $kullanici_id, PDO::PARAM_INT);
$stmt->execute();
$sonuc = $stmt->fetch();
?>
- Dosya Yükleme Güvenliği
<?php
$dosya_adi = $_FILES['dosya']['name'];
$dosya_tipi = $_FILES['dosya']['type'];
$dosya_boyutu = $_FILES['dosya']['size'];
// Dosya türü, boyutu ve diğer kontroller burada yapılır
?>
Bu makalede, PHP ile form işlemlerini yönetmeyi ve veri doğrulama teknikleriyle kullanıcı verilerini güvenli bir şekilde işlemeyi öğrendiniz. Kullanıcı girdilerinin güvenliğini sağlamak, web uygulamalarının önemli bir parçasıdır ve uygun veri doğrulama ve güvenlik önlemleri alarak uygulamalarınızı daha güvenli hale getirebilirsiniz.

Bu Gönderiye Yorum Yapılmamış