Php

PHP Form İşlemleri ve Veri Doğrulama

Aykut AKMAN 1 yıl önce Yorumlar (0) 4 Dakika Okuma
PHP Form İşlemleri ve Veri Doğrulama
E-Posta : 952 1.5k

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.

  1. 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>

  1. 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";
}
?>

  1. Sayı Doğrulama:

<?php
$yas = $_POST["yas"];

if (!is_numeric($yas)) {
    echo "Yaş bir sayı olmalı!";
} else {
    echo "Yaşınız: $yas";
}
?>

  1. Ö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";
}
?>

  1. 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.";
?>

  1. XSS ve Veri Temizleme

<?php
$kullanici_girdisi = $_POST["girdi"];
$temiz_girdi = htmlspecialchars($kullanici_girdisi, ENT_QUOTES, 'UTF-8');

echo "Güvenli veri: $temiz_girdi";
?>

  1. 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>';
?>

  1. 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();
?>

  1. 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.

Sıkça Sorulan Sorular

PHP ile form işlemleri yapmak için HTML formu oluşturulur ve kullanıcıdan alınan veriler PHP kullanılarak işlenir. Veriler, POST veya GET metodu ile gönderilir ve ardından PHP ile doğrulama, güvenlik kontrolleri ve veritabanına ekleme işlemleri yapılır.

PHP'de kullanıcıdan alınan veriler, filter_var() ve preg_match() gibi işlevler kullanılarak doğrulanabilir. Örneğin, e-posta adresi doğrulama için FILTER_VALIDATE_EMAIL kullanılarak girilen e-posta adresi geçerli mi diye kontrol edilir.

PHP'de form verilerini güvenli bir şekilde işlemek için kullanıcıdan gelen verileri doğrulamak, XSS (Cross-Site Scripting) ve CSRF (Cross-Site Request Forgery) saldırılarından korunmak önemlidir. htmlspecialchars(), filter_var() gibi güvenlik önlemleri kullanarak verileri temizleyebilir ve güvenli bir şekilde işleyebilirsiniz.

XSS saldırılarından korunmak için, kullanıcı tarafından girilen verileri htmlspecialchars() ile temizleyebilirsiniz. Bu işlev, HTML etiketlerini doğru şekilde işleyerek zararlı scriptlerin çalıştırılmasını engeller.

PHP ile dosya yüklerken dosya türü, boyutu ve adı gibi güvenlik kontrolleri yapılmalıdır. Yalnızca güvenli dosya türlerine izin verilmeli, dosya boyutu sınırlanmalı ve dosya adları güvenli hale getirilmelidir. Ayrıca, dosyanın zararlı içerik taşımasını engellemek için dosya doğrulama işlemleri yapılmalıdır.

CSRF saldırılarından korunmak için form işlemlerinde CSRF token kullanabilirsiniz. PHP, her oturum için benzersiz bir token oluşturur ve bu token form içinde gizli olarak gönderilir. Sunucu, token'ı doğruladıktan sonra form işlemini gerçekleştirir.

PHP form doğrulama işlemi, kullanıcıdan alınan verilerin doğru formatta olup olmadığının kontrol edilmesidir. Bu, isset(), empty(), filter_var() gibi işlevlerle yapılabilir. Örneğin, bir e-posta adresi doğrulamak için FILTER_VALIDATE_EMAIL kullanılır.

Aykut AKMAN

Aykut AKMAN

Bilişim Öğretmeni

Bu Gönderiye Yorum Yapılmamış

Yorum Yap

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlendi.

Diğer Yazılar