[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: php.ini Нужно ограничить доступ к файлам вне корневой папки сайта пользователя
Megabotan
Под Windows (веб-сервер IIS 6.0) поставлен PHP 5.2
Хочется настроить php.ini так, чтобы пользовательские скрипты не могли получить доступ к файлам и папкам вне корневой директории сайта.
Физический адрес этой папки находиться в переменной $_SERVER["DOCUMENT_ROOT"] или $_SERVER["APPL_PHYSICAL_PATH"]
Я так понял, что параметр doc_root в php.ini здесь не подойдёт по ряду причин. Прежде всего потому, что он работает только в безопасном режиме.
Подскажите мне, пожалуйста, как мне решить эту проблему.
Кстати, что будет если параметру user_dir присвоить "." (точку)? И ещё. Есть ли опасность того, что пользователсь может воспользоваться функцией ini_set(), что обойти ограничение?



Спустя 6 месяцев, 6 дней, 3 часа, 52 минуты, 52 секунды (31.05.2008 - 00:34) ProfPHP написал(а):
Цитата(Megabotan @ 24.11.2007, 22:41) [snapback]29772[/snapback]
Под Windows (веб-сервер IIS 6.0) поставлен PHP 5.2
Хочется настроить php.ini так, чтобы пользовательские скрипты не могли получить доступ к файлам и папкам вне корневой директории сайта.
Физический адрес этой папки находиться в переменной $_SERVER["DOCUMENT_ROOT"] или $_SERVER["APPL_PHYSICAL_PATH"]
Я так понял, что параметр doc_root в php.ini здесь не подойдёт по ряду причин. Прежде всего потому, что он работает только в безопасном режиме.
Подскажите мне, пожалуйста, как мне решить эту проблему.
Кстати, что будет если параметру user_dir присвоить "." (точку)? И ещё. Есть ли опасность того, что пользователсь может воспользоваться функцией ini_set(), что обойти ограничение?

ну php это интерпретатор. он по сути не определяет куда пускать, а куда не пускать. он отвечает за функционал.
за папки и куда пускать и не пускать отвечает апач.

вкратце тебе нужно выставить следующую директиву на сайт в конфиге апаче httpd.cond, либо в vhost, если несколько хостов:
php_admin_value open_basedir "C:\_sites\www.host.com\www\"
перезапускаешь апач, и теперь дальше папки www у тебя никто не выйдет и не сможет выполнять файлы во вне.
но и так ты все равно не полностью обезопасишь сервер, если сайт сломают.
Быстрый ответ:

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