Php Html Kodlarını Temizleme

Php’de yazdığınız kodların güvenlik açığı teşkil etmemesi için bazı önemlerin alınması gerekebilir. Gelen veriyi nasıl kullanmak istediğiniz önemli bir konudur. Misal; form’dan değerleri çektiğinizde html kodları ile birlikte veriler size ulaşır. Bu kısımda ise javascript kodları ile cookie, session gibi oturum bilgilerinin uzak bilgisayara log’latılması sağlanarak, oturum bilgileri çalınabilir. Biz bu açığa xss açığı diyoruz.

Oturum bilgilerini elde eden art niyetli birisi, bu bilgileri kullanarak admin girişi yapabilir ve sonucunda web sayfanıza, verilerinize zarar verebilir. Html kodlarının temizlenmesi sadece güvenlik için değil, filtreleme işlemlerindede kullanılabilir. Veriyi nasıl istiyorsanız o formatta filtreleyip, temizlenmiş verileri istediğiniz bir yerde kullanabilirsiniz.

Html’de bir form oluşturalım ve bu formu oku.php dosyasına post edelim.

<form action="oku.php" method="post">
mesajınızı yazın : <textarea rows="4" cols="10" name="mesaj"></textarea>
<br>
<input type="submit" value="Gönder">
</form>

Kullanıcı bu forma mesajını yazıp gönderdiğinde, veriler oku.php dosyasına gönderilir. Şimdi oku.php ile bu değerleri yakalayalım.

$mesaj = $_POST['mesaj'];
echo $mesaj;

Verileri çektik ve bunu ekrana yazdık. Ziyaretçi tarafından yazılan mesaj ekrana yazdırıldı. Burada her hangi bir html kodu temizleme işlemi olmadığı için güvenlik açığı teşkil ediyor. Biz şimdi burada html kodlarını şu şekilde temizleyebiliriz.

$mesaj = $_POST['mesaj'];
$temizle = strip_tags($mesaj);
echo $temizle;

Php’de strip_tags(); fonksiyonunu kullanarak html kodlarını temizlemiş olduk. Peki Html kodlarını çalıştırmadan, olduğu gibi çekmek istersek nasıl yapabiliriz? bunun için ise kullanabileceğimiz bir fonksiyonumuz bulunuyor.

$mesaj = $_POST['mesaj'];
$temizle = htmlspecialchars($mesaj);
echo $temizle;

Bu iki fonksiyonumuz farklı durumlarda kullanılabilir. Gelen verileri filtreleme işlemi sadece html kodları üzerinden yapılmaz. Sql injection’a neden olabilecek karakterlerin temizlenmesi, gelen verinin sağ ve solundaki boşlukların silinmesi ve sonuç olarak verinin işlenebilecek duruma getirilmesi gerekir.

Translate »