Аргерих Л. О языке РНР. Часть 5. Страница 72


Этот параметр должен быть установлен в Кроме того, в реальной обста­

новке должны быть реализованы обработчики ошибок. Дело в том» что при возникновении ошибок РНР обнаруживает информацию о маршрутах и, воз­можно, имени Это дает атакующему некоторую информацию о

системе, поэтому в реальной обстановке данный параметр надо установить в 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».