PHP является мощным языком программирования и интерпретатором,
взаимодействующим с веб-сервером как модуль либо как независимое
бинарное CGI приложение. PHP способен обращаться к
файлам, выполнять различные команды на сервере и открывать сетевые соединения.
Именно поэтому все скрипты, исполняемые на сервере являются потенциально
опасными. PHP изначально разрабатывался как более защищенный (относительно Perl, C)
язык для написания CGI-приложений. При помощи ряда настроек во время компиляции, а
также настроек во время работы приложения, вы всегда сможете найти
подходящее сочетание свободы действий и безопасности.
Поскольку существует много различных способов использования PHP,
имеется и множество опций, управляющих его поведением.
Широкий выбор опций гарантирует вам возможность использовать PHP в
разных целях, но также означает, что некоторые комбинации опций
делают сервер незащищенным.
Гибкость конфигурирования PHP можно сравнить с гибкостью самого языка.
PHP можно использовать для создания полноценных серверных приложений,
использующих доступные для указанного пользователя возможности операционной
системы, также возможна реализация включения файлов, хранящихся на сервере
с минимальным риском в жестко контролируемой среде. То, насколько безопасен ваш сервер
и как настроено окружение, в большей части зависит от PHP-разработчика.
Эта глава начинается с рассмотрения некоторых общих вопросов безопасности,
различных конфигурационных опций и их комбинаций, а также ситуаций, когда
их использование является безопасным. Кроме того, приводятся некоторые рассуждения
касательно безопасного кодирования.