нашел сканер дыр запустил ссылку и вот что выдал Open directory Found: http://****.***.ru/index.php?i=10/a/ Open file Found: http://****.***ru/index.php?i=10/g.php как бороться с /a/ вот так я пишу в менюшках PHP: <?index.php?i='.GET(i).'&................. вот мой фильтр PHP: <?function GET($GET) { $GET="$_GET[$GET]"; $GETs=basename($GET); $GETss=htmlspecialchars($GETs); $GETsss=preg_replace('/[^0-9]/', '', $GETss); return $GETsss; }
PHP: <?php function getint(){ foreach($_GET as $k=>$v){ $_GET[$k]=(int)$v; } } getint(); /* Дальше пошел скрипт */
SWITCH (GET(i)) { CASE '1': include ("main/news.php"); BREAK; ...................... CASE '63': include ("library/library_db/libary.php"); BREAK; default: include ("welcome.php"); BREAK; }
suu Если ни в одном из инклудов у Вас не используется знчение из ГЕТа напрямую, то и уязвимости подобной нет. Что у Вас в case '10' ?
CASE '10': include ("main/account.php"); BREAK; З.Ы. насчет ГЕТ-инклудов, уже читал что лучше не делать.