PHP: Вариант 3: использование опций doc_root и user_dir - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Вариант 4: PHP вне дерева веб-документов Вариант 2: использование --enable-force-cgi-redirect

Last updated: Fri, 26 Jan 2007

view this page in

# Вариант 3: использование опций doc_root и user_dir

Размещение динамического контента, такого как скрипты либо любые другие исполняемые файлы, в директории веб-сервера делает его потенциально опасным. В случае, если в конфигурации сервера допущена ошибка, возможна ситуация, когда скрипты не выполняются, а отображаются в браузере, как обычные HTML-документы, что может привести к утечке конфиденциальной информации (например, паролей), либо информации, являющейся интеллектуальной собственностью. Исходя из таких соображений, многие системные администраторы предпочитают использовать для хранения скриптов отдельную директорию, работая со всеми размещенными в ней файлами по CGI-интерфейсу.

В случае, если невозможно гарантировать, что запросы не перенаправляются, как было показано в предыдущем разделе, необходимо указывать переменную doc_root, которая отличается от корневой директории веб-документов.

Вы можете установить корневую директорию для PHP-скриптов, настроив параметр doc_root в конфигурационном файле, либо установив переменную окружения `PHP_DOCUMENT_ROOT`. В случае, если PHP используется посредством CGI, полный путь к открываемому файлу будет построен на основании значения переменной `doc_root` и указанного в запросе пути. Таким образом, вы можете быть уверены, что скрипты будут выполняться только внутри указанной вами директории (кроме директории `user_dir`, которая описана ниже).

Еще одна используемая при настройке безопасности опция - user_dir. В случае, если переменная user_dir не установлена, путь к открываемому файлу строится относительно `doc_root`. Запрос вида `http://my.host/~user/doc.php` приводит к выполнению скрипта, находящегося не в домашнем каталоге соответствующего пользователя, а находящегося в подкаталоге doc_root скрипта `~user/doc.php` (да, имя директории начинается с символа `~`).

Но если переменной `public_php` присвоено значение, например, `http://my.host/~user/doc.php`, тогда в приведенном выше примере будет выполнен скрипт `doc.php`, находящийся в домашнем каталоге пользователя, в директории `public_php`. Например, если домашний каталог пользователя `/home/user`, будет выполнен файл `/home/user/public_php/doc.php`.

Установка опции `user_dir` происходит независимо от установки `doc_root`, таким образом вы можете контролировать корневую директорию веб-сервера и пользовательские директории независимо друг от друга.

add a note User Contributed Notes
Вариант 3: использование опций doc_root и user_dir
There are no user contributed notes for this page.
Вариант 4: PHP вне дерева веб-документов Вариант 2: использование --enable-force-cgi-redirect

Last updated: Fri, 26 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 09:32:46 2007 PST