[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Директива include и безопасность
acerrusm
Привет!

Читаю книгу Котерова по PHP. Из нее узнал, что использование каких бы то ни было переменных, в директивах include и require нужно избегать. Понятно, в чем проблема с $_REQUEST, но такой метод значит тоже нежелательно использовать?

include $_SERVER['DOCUMENT_ROOT']."/lib/sample.lib.php";

Собственно сама вырезка из книги (картинка)
user posted image


Спасибо!
killer8080
$_SERVER['DOCUMENT_ROOT'] это переменная окружения сервера, хакер не может её переопределить, никакой угрозы тут нет.
acerrusm
Цитата (killer8080 @ 28.12.2014 - 20:43)
$_SERVER['DOCUMENT_ROOT'] это переменная окружения сервера, хакер не может её переопределить, никакой угрозы тут нет.

Спасибо!
mvg
Странно: сначала отключили подключение файла по сети, а потом написали подключение файла по ftp.

Цитата
include $_SERVER['DOCUMENT_ROOT']."/lib/sample.lib.php";


К суперглобальным массивам и переменным окружения небезопасно обращаться напрямую, хотя примеров их взлома тоже нигде не читал. Вместо этого рекомендуется использовать функцию filter_input:

$document_root = filter_input(INPUT_SERVER, 'DOCUMENT_ROOT');
include $document_root."/lib/sample.lib.php";


Также можно определять путь исходя из месторасположения файла: для файла index.php -
dirname( __FILE__ )."/lib/sample.lib.php";
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.