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.

Admin
Admin

Bilgiye ve eğitime önem veren, paylaşmayı seven bir insan.

5 Yorumlar
Tümünü göster En Yararlı En Yüksek Puan En Düşük Puan Yorumunuzu ekleyin
  1. Oldukça açıklayıcı olmuş. bir sitemde HTML kodlarının çalışmadan görünmesini nasıl yaparım diyordum. Özellikle hiç bir webmaster güvenlik konusunda sorun yaşamak istemez, bunun için html kodlarının temizlenmiş olarak çekilmesi gerekiyor bunu sayenizde öğrenmiş oldum.

  2. Teşekkürler. Peki bunları kullanmadan direkt mysqli kullarak veritabanına insert ya da update etsek yine de problem olur mu?

  3. Özellikle yorum scriptleri yazarken kullanılabilir, çok teşekkürler 🙂

  4. Güzel paylaşım olmuş daha çok php’de html kodlarını nasıl temizleyebileceğimizi detaylı bir şekilde anlatmışsınız ve açık oluşturabilecek durumlar hakkında bilgi sahibi oldum. Emeğinize sağlık.

  5. Php kullanarak form’dan gelen html kodlarını anlattıklarınızı deneyerek temizledim. Böylelikle daha güvenli bir yazılım için kapı aralanmış oldu. Çok yararlı bilgi olmuş lazım olacak teşekkürler…

Mehmet Ali Kurt için bir yanıt yazın Cevabı İptal Et

Translate »
Kılavuz Yazılım
Logo