Этот параметр должен быть установлен в Кроме того, в реальной обста
новке должны быть реализованы обработчики ошибок. Дело в том» что при возникновении ошибок РНР обнаруживает информацию о маршрутах и, возможно, имени Это дает атакующему некоторую информацию о
системе, поэтому в реальной обстановке данный параметр надо установить в false. По умолчанию он имеет значение true. Если он установлен в false, можно задать в параметре конфигурации error_log местонахождение файла, в котором РНР будет регистрировать сообщения о возникших ошибках.
error_reporting
РНР предоставляет различные средства отладки и обработки Обра
щаться с ними следует осторожно, чтобы не допустить компрометации системы защиты. Значение этого параметра можно установить в зависимости от видов ошибок и предупреждений, о которых должно сообщаться, с помощью функции error_reporting() либо задав это значение в файле php. ini. Для этого в РНР определен ряд констант. Они перечислены ниже с указанием типа ошибок, сообщения о котором активизируют (табл. 23.1):
Эти параметры представляют собой битовые маски и могут объединяться с помощью логических операторов AND, OR и NOT. Вот несколько примеров:
• Показывать все ошибки, кроме E_NOTICE и E_USER_
error_reporting = E_ALL & "(E_NOTICE|E_USER_NOTICE) • Показывать только E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR и E_USER_ERROR: error_reporting = E_ERROR|E_CORE_ERROR|E_COMPILE_ERROR|E_USER_ERROR
• Показывать все:
error_reporting = E_ALL
Рекомендуется во время разработки останавливать E_ALL. В реальной среде лучше включить предупреждения и ошибки, а уведомления отключить.
open_basedir
С помощью этого параметра можно задать доступные На
пример, если необходимо открывать файлы только в site/
logs, то это значение надо установить для Можно задать не
сколько каталогов, разделив их точкой с запятой (;) в Windows и двоеточием (:) в других системах.
Все символические ссылки разыменовываются, поэтому невозможно обойти эту установку с помощью символических ссылок. Значение этого параметра по умолчанию позволяет открывать любой файл.
variables_order
Этот параметр управляет порядком, в котором РНР регистрирует переменные POST, GET, cookie и серверы. По умолчанию установлен порядок «EGPCS», что означает регистрацию переменных окружения, GET, POST, cookie и сервера в указанном порядке.
Переменные, регистрируемые позднее, переопределяют установленные ранее значения. Таким образом, переменные окружения заменяются переменными GET, которые заменяются переменными POST, и т. д. Если у переменной POST такое же имя, как у переменной GET, переменная POST заменяет переменную GET. Главная польза этого параметра в возможности отключить регистрацию переменных из определенного источника, например от окружения и GET, для чего variables_order следует установить в «PCS».