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.
bu yeterli mi sizce ?
bu yazı biraz mantığı kavrama amaçlı. ufak projelerde iş görür diyebilirim.
teşekkürler dostum
teşekkürler
Maybe one day I will write a book based on this perfect writing. Great job really.