Необходимо отметить, что «5» всегда надо указывать на последнем месте или вообще не задавать, чтобы не допустить замены важных переменных сервера переменными, управляемыми пользователем.
register_globals
Это, вероятно, самая опасная из всех настроек РНР. Если она имеет значение on (установка по умолчанию вплоть до РНР 4.1), а не off (значение по умолчанию начиная с РНР 4.2), то переменные EGPCS регистрируются как глобальные. С этим связано несколько угроз.
Прежде всего, это означает, что пользователю не надо проверять, откуда поступила переменная (от POST, GET или cookie), поэтому значения переменных могут быть поддельными. Одно это обстоятельство вызывает большинство проблем со сценариями РНР. Если вы установили значение этой переменной равным off (рекомендуется), то включите t rack_vars в on.
track_vars
Если этот параметр установлен в on (выполняется по умолчанию), то переменные EGPCS оказываются в массивах $HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS И $HTTP_SERVER_VARS.
disable_functions
Аргумент этой функции содержит список функций, выполнение которых запрещается РНР. По умолчанию РНР разрешено выполнение всех функций. В число функций, запрещение которых имеет смысл, входят:
• ехес()
Выполняет указанную команду и возвращает последнюю строку выдачи программы
• passthru()
Выполняет указанную команду и возвращает все результаты непосредственно в удаленный броузер
• systemO
Примерно то же, что passthru(), но не обрабатывает двоичные данные
• shell_exec()
Функциональный эквивалент оператора обратного штриха, который РНР попытается выполнить в качестве команды оболочки
• рореп()
Выполняет указанную команду и соединяет выходной или входной потоки с дескриптором файла РНР
allow_url_fopen
Запрещает открытие удаленных файлов на других FTP- или веб-серверах. Если нет необходимости обращаться к файлам других сайтов HTTP или FTP, установите значение
Безопасный режим
Для решения проблемы защиты совместно используемого сервера в РНР есть функция, устанавливающая безопасный режим (safe mode). Эта функция ограничивает действия, доступные сценариям, ограничивая таким образом который сценарии злоумышленников могут причинить серверу и тем, кто с ним работает.
В безопасном режиме РНР проверяет, является ли владелец текущего сценария также владельцем всех файлов, которые он пытается открыть. Если идентификаторы пользователей не совпадают, РНР выводит предупреждение о том, что данная функция ограничена.