Отключение php функций, для защиты от php web shell script-ов

Большинство cms, при отключении данных функций, работает без проблем, но все же не все.
Для защиты от php шела, нам потребуется сделать несколько изменений.

Шаг первый.
Требуется включить safe mode режим, для этого отредактируем файл php.ini:

safe_mode = boolean
safe_mode_gid = boolean
safe_mode_include_dir = /usr/local/bin/php
safe_mode_exec_dir = ./

Описание функций
safe_mode - Включает/отключает защищенный режим в PHP.
safe_mode_gid - По умолчанию в защищенном режиме при открытии файла выполняется проверка значения UID. Для того, чтобы немного смягчить это условие и выполнять проверку GID, необходимо установить значение on для флага safe_mode_gid. Определяет, использовать или нет проверку UID (FALSE) или GID (TRUE) проверку при обращении к файлу.
safe_mode_include_dir - При подключении файлов, расположенных в указанной директории и всех ее подкаталогах, проверка на соответствие значений UID/GID не выполняется (В случае, если установленная директория не указана в include_path, необходимо указывать полный путь при включении).
safe_mode_exec_dir - В случае, когда PHP работает в защищенном режиме, system() и другие функции для выполнения системных команд и программ отклоняют выполнение программ, находящихся вне данной директории.

Шаг второй.
Установить директиву для функции disable_functions в файле php.ini:

disable_functions = "system,exec,passthru,shell_exec,escapeshellarg,escapeshellcmd,dl,show_source,fileowner,filegroup,
posix_getpwuid,posix_getgrgid,posix_uname,cwd,getcwd,php_uname,popen,proc_open,ini_get_all,disk_total_space,
diskfreespace,disk_free_space"

Описание функций disable_functions
system - Выполняет внешнюю программу и отображает вывод.
exec - Выполняет внешнюю программу.
passthru - Выполняет внешнюю программу и выводит сырой вывод.
shell_exec - Выполняет команду в оболочке/shell и возвращает полный вывод в виде строки.
escapeshellarg - escape-ирует (заменяет мнемониками) строку, используемую как аргумент оболочки.
escapeshellcmd - escape-ирование метасимволов оболочки/shell.
dl - загружает РНР-расширение на этапе прогона.
show_source - Выделение синтаксиса файла.
fileowner - Получает идентификатор владельца файла.
filegroup - Получает идентификатор группы файла.
posix_getpwuid - Возвращает информацию о пользователе по его user id.
posix_getgrgid - Возвращает информацию о группе по её group id.
posix_getcwd - Путь текущей директории.
posix_uname - Получает системное имя.
getcwd - Получить имя текущего рабочего каталога.
php_uname - Возвращает информацию об ОС, на которой РНР был построен.
popen - Открывает файловый указатель процесса
proc_open - Выполняет команду и открывает файловый указатель для ввода/вывода.
ini_get_all - Получает все опции конфигурации.
disk_total_space - Возвращает объем каталога.
diskfreespace - Псевдоним функции disk_free_space
disk_free_space - Получить размер доступного пространства в каталоге.



Яндекс.Метрика
Счётчик ТЦ#65533;Ц LiveRSS: Каталог русскоязычных RSS-каналов