Безопасный режим PHP это попытка разрешения проблемы безопасности совместно
используемого сервера. Архитектурно некорректно пытаться решить эту проблему
на уровне PHP, но, поскольку альтернативы уровня web-сервера и ОС не слишком реалистичны, многие,
особенно ISP, используют safe mode.
Когда safe_mode включён/on, PHP проверяет, совпадает ли owner/владелец текущего скрипта с owner
файла, которым оперирует функция работы с файлами. Например:
Warning!: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2
Однако может быть такое окружение, когда строгая проверка UID не подходит, а достаточно менее строгой проверки
GID. Это поддерживается посредством переключателя
safe_mode_gid. Установка его в On
выполняет проверку GID, а установка Off (по умолчанию) выполняет проверку UID.
Если вместо safe_mode вы установите директорию
open_basedir, то все операции с файлами будут проводиться только с файлами в пределах этой
директории. Например (пример Apache httpd.conf):
Если вы запустите тот же самый скрипт script.php с установкой
open_basedir, то результат будет таким:
Warning!: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2
Вы можете также отключить отдельные функции. Обратите внимание, что директива disable_functions
не может использоваться вне файла php.ini, то есть вы не можете отключать функции на уровне директории или на уровне
виртуального хоста в вашем файле httpd.conf. Если добавить в файл php.ini:
disable_functions readfile,system
то мы получим на выводе:
Warning!: readfile() has been disabled for security reasons in
/docroot/script.php on line 2
Вы можете выполнять исполняемые файлы только внутри
safe_mode_exec_dir.
Из практических соображений вам в настоящее время не разрешается иметь компоненты .. в пути к исполняемому файлу.
Вы можете выполнять исполняемые файлы только внутри
safe_mode_exec_dir.
Из практических соображений вам в настоящее время не разрешается иметь компоненты .. в пути к
исполняемому файлу.
Вы можете выполнять исполняемые файлы только внутри safe_mode_exec_dir.
Из практических соображений вам в настоящее время не разрешается иметь компоненты .. в пути к
исполняемому файлу.
Вы можете выполнять исполняемые файлы только внутри safe_mode_exec_dir.
Из практических соображений вам в настоящее время не разрешается иметь компоненты .. в пути к
исполняемому файлу.
Проверяет, имеют ли файл(ы)/директории, с которыми вы работаете, тот же самый
UID, что и исполняемый скрипт. Проверяет, имеет ли директория, в
которой вы работаете, тот же самый UID, что и исполняемый скрипт.
Проверяет, имеют ли файл(ы)/директории, с которыми вы работаете, тот же самый
UID, что и исполняемый скрипт. Проверяет, имеет ли директория, в
которой вы работаете, тот же самый UID, что и исполняемый скрипт.
Проверяет, имеют ли файл(ы)/директории, с которыми вы работаете, тот же самый
UID, что и исполняемый скрипт. Проверяет, имеет ли директория, в
которой вы работаете, тот же самый UID, что и исполняемый скрипт. (on source and target)
Проверяет, имеют ли файл(ы)/директории, с которыми вы работаете, тот же самый
UID, что и исполняемый скрипт. Кроме того, вы не можете установить SUID, SGID и sticky-биты.
Проверяет, имеют ли файл(ы)/директории, с которыми вы работаете, тот же самый
UID, что и исполняемый скрипт. Проверяет, имеет ли директория, в
которой вы работаете, тот же самый UID, что и исполняемый скрипт.
Проверяет, имеют ли файл(ы)/директории, с которыми вы работаете, тот же самый
UID, что и исполняемый скрипт. Проверяет, имеет ли директория, в
которой вы работаете, тот же самый UID, что и исполняемый скрипт. (Примечание: проверяется только target/цель)
Проверяет, имеют ли файл(ы)/директории, с которыми вы работаете, тот же самый
UID, что и исполняемый скрипт. Проверяет, имеет ли директория, в
которой вы работаете, тот же самый UID, что и исполняемый скрипт. (Примечание:
проверяется только target/цель)
В безопасном режиме header’ы, начинающиеся с ’authorization’
(нечувствительно к регистру), не будут возвращаться. Предупреждение: это
нарушено реализацией aol-сервером функции getallheaders()!
В безопасном режиме uid скрипта добавляется в часть realm шапки WWW-Authenticate,
если вы устанавливаете эту шапку/header (используемую для HTTP Authentication).
Проверяет, имеют ли файл(ы)/директории, с которыми вы работаете, тот
же самый UID, что и исполняемый скрипт. Проверяет, имеет ли
директория, в которой вы работаете, тот же самый UID, что и исполняемый
скрипт. (Примечание: работает, только начиная с PHP 4.2.1)
Проверяет, имеют ли файл(ы)/директории, с которыми вы работаете, тот
же самый UID, что и исполняемый скрипт. Проверяет, имеет ли директория, в которой вы работаете, тот же самый UID, что и исполняемый
скрипт. (Примечание: работает, только начиная с PHP 4.2.1)