Güvenliğini içermelidir

4 Cevap php
<?php
if (preg_match('/^[a-z0-9]+$/', $_GET['page'])) {
$page = realpath('includes/'.$_GET['page'].'.php');
$tpl = realpath('templates/'.$_GET['page'].'.html');
if ($page && $tpl) {
    include $page;
    include $tpl;
} else {
    // log error!
}
} else {
// log error!
}
?>

How safe would you say this is? Gumbo here on Stack Overflow wrote it.
http://stackoverflow.com/questions/524908/dynamic-include-safety/524959#524959

Ben senin fikirlerini duymak istiyorum.

şerefe

4 Cevap

Benim ilk düşünce güvenliği ile ilgili değil, ama dünyada bunu neden dersiniz?

Ben oldukça güvenli olduğunu söyleyebilirim. Sadece bir şey bu klasörler yazmaya izin vermez. PHP dosyaları ile başlamak tehlikeli bir sunucunun web kök içindeki geleneksel vardır. Bu bir yapılandırma hatası veya eksik olacak bir. Htaccess dosyası verilen dışında kesinlikle erişilmez bir alana yüklenen dosyaları yerleştirmek için daha iyi olurdu.

kendi kodunuzu dahil. ne kadar güvenli?

Ben orada bazı olası sorunları görmek, özellikle 'sayfa' içerdiği değişken '..' veya onlara görmek mümkün olması gerekiyordu değil bir şey görmek için izin verebilecek diğer tür şeyler. Olabilir

Benim bir kaç sitelerinde benzer bir şey, ama ben ilk önce sayfaların bir dizi birini başvuruyor emin olmak için 'sayfa' kontrol ediyorum.