Hoşgeldin Misafir

PHP ile form girdilerini nasıl güvenli hale getirebilirsiniz?

Reisci

Reisci

Yerli Ve Milli Hacker
11 Mar 2020
6,569 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
PHP form girdilerini filtrelemek için aşağıdaki adımları takip edebilirsiniz:


  1. Öncelikle, form girdilerini toplamak için “POST” veya “GET” metodunu kullanabilirsiniz. Örneğin, formun “action” özelliğine bir PHP sayfasının adını verir ve “method” özelliğine “POST” veya “GET” değerini verirseniz, form girdileri PHP sayfasına gönderilebilir.
  2. Form girdilerini PHP sayfasında almak için “$_POST” veya “$_GET” dizilerini kullanabilirsiniz. Örneğin, “name” alanı için girilen değeri almak için “$_POST[‘name’]” değişkenini kullanabilirsiniz.
  3. Form girdilerini filtrelemek için “filter_input” veya “filter_var” fonksiyonlarını kullanabilirsiniz. Örneğin, “name” alanı için girilen değeri filtrelemek için “filter_input(INPUT_POST, ‘name’, FILTER_SANITIZE_STRING)” kodunu kullanabilirsiniz. Bu, “name” alanındaki girdiyi bir dize olarak temizler ve güvenli hale getirir.
  4. “filter_input” ve “filter_var” fonksiyonları birçok farklı filtre türü sunar. Örneğin, bir sayı filtresi kullanarak form girdilerini tamsayı olarak filtreleyebilir, bir URL filtresi kullanarak form girdilerini URL olarak filtreleyebilir veya bir e-posta filtresi kullanarak form girdilerini e-posta adresi olarak filtreleyebilirsiniz. Ayrıca, özel filtreler oluşturarak form girdilerini daha spesifik bir şekilde filtreleyebilirsiniz.

Burada, PHP ile bir formdan girilen “name” ve “email” alanlarını filtreleyen bir örnek kod verilecektir:

PHP:
<?php

// Form girdilerini al
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);

// Filtrelerin sonuçlarını kontrol et
if ($name === false || $email === false) {
  // Bir veya daha fazla filtre hatalı oldu
  echo "Girilen değerler geçersiz!";
  exit;
}

// Filtrelenmiş girdileri kullan
echo "İsim: " . $name . "\n";
echo "E-posta: " . $email . "\n";

?>

Bu örnek kod, “POST” metodu ile gönderilen “name” ve “email” alanlarını alır ve bunları “FILTER_SANITIZE_STRING” ve “FILTER_SANITIZE_EMAIL” filtreleriyle sırasıyla temizler. Daha sonra, filtrelerin sonuçlarını kontrol eder ve filtreler hatalıysa bir hata mesajı gösterir. Eğer filtreler başarılıysa, filtrelenmiş girdileri ekrana yazdırır.

Bu örnek kod sadece bir örnektir ve gerçek uygulamalar için daha fazla işleme ve doğrulama yapılması gerekebilir. Örneğin, “email” alanının gerçekten bir e-posta adresi olup olmadığını doğrulayabilir veya “name” alanının belirli bir uzunlukta olup olmadığını kontrol edebilirsiniz. Bu tür işlemler için PHP’nin diğer fonksiyonlarını ve özelliklerini kullanabilirsiniz.

Not: Bu adımlar genel olarak PHP form girdilerini nasıl filtreleyeceğinizi açıklar, ancak bazı detaylar bu adımlar arasında değişebilir. Bu nedenle, PHP form girdilerini filtrelemek için PHP’nin resmi dokümantasyonunu veya ilgili fonksiyonların dokümantasyonunu da inceleyebilirsiniz.