PHP Dosya include Açığından Korunma
Bu yazımızda adres satırından gelen bir başka saldırı türünü nasıl engelleyeceğimizi öğreneceğiz.
1 |
index.php?sayfa=yukleneceksayfa.php |
şeklinde kullanıyorsanız başınız büyük belaya girebilir. Bunun sebebi PHP’nin allow_url_fopen ayarı ON ise uzak sunucudaki (sizin bilgisayarınızın dışında ki bir sunucudan) dosya okutulup çalıştırılabilir. (bir zamanlar sunucum bu yüzden kapanmıştı 🙂
1 |
include $_GET['sayfa']; |
GET ile gelen verileri sınırlandırmanız gerekir. Bu iş için switch – case yapısını kullanmak uygun olacaktır.
1 2 3 4 5 6 |
switch($_GET['sayfa']) { case "iletisim": include('iletisim.php');break; case "haber": include('haber.php'); break; default: include('index.php'); } |
Bu komutla yüklenecek sayfaları sınırlıyoruz. Eğer adres satırından gelen sayfa isteği bizim tanımladığımız sayfalardan farklı ise default kısmı çalışacaktır ve index.php yüklenecektir.