2011-12-15 2 views
0

Я хочу проверить, находится ли путь к файлу в текущем дереве каталогов.Как узнать, существует ли файл в текущем дереве каталогов

Предположим, что параметр задан как js/script.js. Мой рабочий каталог (WD) - /home/user1/public_html/site

Теперь для текущего WD, если кто-то поставляет js/script.js Я могу просто проверить его, добавив к WD. Он работает для такого нормального пути. Но если кто-то (может быть атакующим) хочет пройти ../../../../etc/password, это будет проблемой.

Я знаю, что он может быть подавлен удалением символов .. с использованием некоторого RegEx. И это решит это наверняка. Но я хочу знать, как я могу создать какой-то вид среды, в которой будет передан любой путь/в/сценарий, который будет выполняться в WD?

Редактировать: Мне известно http://php.net/chroot. это требует, чтобы ваше приложение запускалось с привилегиями root.

+1

От PHP 5.3.0 можно установить open_basedir из вашего PHP-скрипта. –

ответ

Смежные вопросы