2013-02-15 1 views
2

Я изучаю php самостоятельно, и я разрабатываю некоторые простые сайты, использующие php, чтобы облегчить процесс создания страницы. Я искал этот сайт для того, чтобы сделать его безопасным, но, как нуб, я всегда боюсь испортить.Php Включить безопасность - использование префикса массива и имени

<?php 
    $siteArticles = array('instalacoes','galeria','regiao-e-historia','precos','contactos'); 
    if(isset($_GET['page'])){ 
     if(in_array($_GET['page'], $siteArticles, true) && file_exists('pt/'.'rbs-article-'.$_GET['page'].'.php')){ 
      include('pt/'.'rbs-article-'.$_GET['page'].'.php'); 
     } 
    }else{ 
     include('pt/rbs-article-home.php'); 
    } 
?> 

Как вы можете видеть, он сначала проверяет наличие страницы разрешено через массив, а затем добавить префикс к файлу имя.

Вопрос, насколько это безопасно?

Спасибо за ваше время.

ответ

3

Это безопасно. Проверка in_array() делает ее безопасной. Невозможно выполнить атаку локального файла (LFI) для этого кода просто потому, что запрошенная страница должна точно соответствовать одному из элементов в белом списке.

+0

Просто потому, что я параноик, я все равно использую 'array_search' и получаю имя страницы, используя индекс, вместо использования' $ _GET ['page'] ' – MarcDefiant