Içeren PHP güvenlik

2 Cevap php

Bunu ne kadar güvenli söyleyebilirim?

$pages = array("about", "help", "login");
$pagesWithId = array("shownews", "showuser", "showfile");

if (in_array($_GET['page'], $pages)) {
  include('includes/'.$_GET['page'].'.php');
  include('templates/'.$_GET['page'].'.html');
}

foreach ($pagesWithId as $page) {
    if (ctype_digit($_GET[$page])) {
    include('includes/'.$page.'.php');
    include('templates/'.$page.'.html');
}
}

Siz herhangi bir potansiyel tehdit gördün mü?

Teşekkürler

2 Cevap

Bu güvenli.

Ne güvenli değil Birisi size daha sonra dahil keyfi bir URL oluşturmak için izin veriyor.

İşte bu nedenle güvenli, birkaç bilinen miktarlarda birine mümkün değiştirmeleri sınırlayıcı ediyoruz.

Kimse uzak bir URL'den okumak sizin kod kılan bir dize enjekte edebilir çünkü güvenlidir. Ama 404 sayfa biri GET parametreleri içine HTML / Javascript tip izin verebilecek şekilde URL görünmüyor emin olun.

A güvenlikle ilgili olmayan bir soru: bu sayfaların listelerini saklamak PHP dizileri ile dağıtmış olacak?