Проблемы конфигурации
Следует внимательно проанализировать все параметры конфигурации и разрешить только то, что действительно необходимо.
Параметры конфигурации РНР определяются в файле php.ini.
Параметр safe_mode- ограничивается использование некоторых потенциально опасных возможностей РНР. Для включения или выключения безопасного режима параметру safe_mode присваивается значение on или off. Механизм ограничения основан на сравнении идентификатора пользователя (UID) выполняющегося сценария с идентификатором пользователя того файла, к которому этот сценарий пытается обратиться. Если идентификаторы совпадают, функция выполняется; в противном случае попытка завершается неудачей.
Безопасный режим не может использоваться в том случае, если РНР откомпилирован в виде модуля Apache. Дело в том, что при работе РНР в режиме модуля Apache все сценарии РНР работают под тем же идентификатором, что и Apache, что не позволяет различать владельцев разных сценариев.
При включении безопасного режима действуют следующие ограничения:
· Функции ввода/вывода (в частности, fopen ( ), filе( ) и include ( )) работают только с файлами, принадлежащими владельцу сценария.
· Запуск внешних сценариев функциями popen( ), system( ) или ехес( ) разрешается лишь в том случае, если запускаемый сценарий находится в каталоге, определяемом параметром safe_mode_exec_dir.
· Новые файлы создаются только в каталогах, принадлежащих владельцу сценария.
· Аутентификация HTTP становится более жесткой, поскольку в ней также учитывается UID аутентифицирующего сценария.
· Имя пользователя, использованное при подключении к серверу MySQL, должно совпадать с именем владельца файла, вызывающего mysql_connect( ).
Функции, выполнение которых ограничивается в безопасном режим: chgrp, chmod, chown , exec, fopen, file, include, link, passthru, popen, readfile, rename, require, rmdir, symlink, system, unlink.
Рассмотрим основные параметры конфигурации.
safe_mode_exec_dir определяет каталог для размещения системных программ, запускаемых такими функциями, как system( ), exec( ) или passthru( ). Параметр используется лишь при включенном безопасном режиме.
disable_functionsзадает список через запятую имен функций, выполнение которых требуется запретить.
doc_root- присваивается путь к корневому каталогу для файлов РНР. Если значение doc_root представляет собой пустую строку, оно игнорируется и сценарии РНР выполняются в полном соответствии с URL. Если безопасный режим включен, а параметр doc_root содержит непустое значение, то сценарии РНР за пределами этого каталога выполняться не будут.
max_execution_time- указывает максимальную продолжительность выполнения сценария (в секундах). По истечении указанного срока сценарий автоматически завершается. По умолчанию параметр равен 30 секундам. Если присвоить ему 0, время выполнения сценариев не ограничивается.
memory_limitопределяет максимальный объем памяти (в байтах), используемой сценарием. По умолчанию параметр равен 8 Мбайт.
sql.safe_mode- при его включении игнорируется вся информация, передаваемая функциям mysql_connect( ) и mysql_pconnect( ), а подключения разрешаются только для UID, под которым работает web-сервер.
user_dirопределяет имя подкаталога в домашнем каталоге пользователя, в котором должны находиться исполняемые сценарии РНР.
Дата добавления: 2015-04-15; просмотров: 769;