PHP Form Verilerini Filtreleme

PHP scriptlerde oluşturulan formların güvenliğini sağlamak amaçlı PHP 5.2 sürümünden sonra çeşitli komutlar eklendi. Bu komutlar formdaki verilerin içine  iframe kodları , javascript üzerinde kullanan saldırı kodları(XSS vs.) dahil edilip sistem güvenliğinizi tehdit edebilecek girişimleri büyük oranda önlüyor.

 

örnek verecek olursak ;

filter_input_array(INPUT_POST,array(‘mesaj’=>FILTER_SANITIZE_SPECIAL_CHARS));

Yukarıdaki ilk parametredeki INPUT_POST formun methodunun post olduğunu belirtiyor.Formun methodu GET olsaydı INPUT_GET olacaktı yani.İkinci parametre yani “mesaj” formdan alınan name değerini gösteriyor.İşi biraz koda dökelim.

<?php
//Yazan : Burak Gültekin
// www.burakgultekin.com.tr
if($_POST)

{

$degerler=array(‘baslik’ => FILTER_SANITIZE_SPECIAL_CHARS,

‘mesaj’ => FILTER_SANITIZE_SPECIAL_CHARS);

$girdiler=filter_input_array(INPUT_POST,$degerler);

echo “Baslik:”.$girdiler[‘baslik’];

echo ‘<br>’;

echo “Mesaj:”.$girdiler[‘mesaj’];

}

else { ?>

<form method=”POST” action=””>

Başlık: <input type=”text” name=”baslik”>

Mesaj=<textarea rows=”5″ cols=”50″ name=”mesaj”></textarea>

<input type=”submit” value=”Gönder”>

</form>

<?php

} ?>

Formun iki kısmını da <script>alert(“Burak Gültekin”)</script> şeklinde doldurduğumuzu varsayalım. Normalde ekrana Burak Gültekin şeklinde bilgi mesajı gelmesi gerekirken filtreleme sisteminin vereceği çıktı ;

Baslik:<script>alert(“Burak Gültekin”)</script>
Mesaj:<script>alert(“Burak Gültekin”)</script>

bu şekilde olacaktır. Bunun dışında da FILTER_SANITIZE_EMAIL,FILTER_REQUİRE_ARRAY_FILTER_SANİTİZE_URL gibi komutlar bulunmaktadır. Mantıkları az çok aynı olmakla birlikte inşallah onlar içinde vakit bulduğumda yazı yazmak isterim.

Selametle.

 

Yorum yap

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