Я хочу проверить, находится ли путь к файлу в текущем дереве каталогов.Как узнать, существует ли файл в текущем дереве каталогов
Предположим, что параметр задан как js/script.js
. Мой рабочий каталог (WD) - /home/user1/public_html/site
Теперь для текущего WD, если кто-то поставляет js/script.js
Я могу просто проверить его, добавив к WD. Он работает для такого нормального пути. Но если кто-то (может быть атакующим) хочет пройти ../../../../etc/password
, это будет проблемой.
Я знаю, что он может быть подавлен удалением символов ..
с использованием некоторого RegEx. И это решит это наверняка. Но я хочу знать, как я могу создать какой-то вид среды, в которой будет передан любой путь/в/сценарий, который будет выполняться в WD?
Редактировать: Мне известно http://php.net/chroot. это требует, чтобы ваше приложение запускалось с привилегиями root.
От PHP 5.3.0 можно установить open_basedir из вашего PHP-скрипта. –