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.
Kaynak :
https://www.burakgultekin.com.tr/php...ni-filtreleme/