Поиск по сайту:

Как скрыть номер версии PHP в заголовке HTTP


Конфигурация PHP по умолчанию позволяет в заголовке HTTP-ответа сервера «X-Powered-By» отображать версию PHP, установленную на сервере.

По соображениям безопасности сервера (хотя это не является серьезной угрозой, о которой стоит беспокоиться) рекомендуется отключить или скрыть эту информацию от злоумышленников, которые могут нацелиться на ваш сервер, желая узнать, используете ли вы PHP или нет.

Если предположить, что определенная версия PHP, установленная на вашем сервере, имеет дыры в безопасности, и с другой стороны, злоумышленники узнают об этом, им станет намного проще эксплуатировать уязвимости и получать доступ к серверу через скрипты.

В моей предыдущей статье я показал, как скрыть номер версии Apache, где вы видели, как отключить установленную версию Apache. Но если вы используете PHP на своем веб-сервере Apache, вам также необходимо скрыть установленную версию PHP, и это то, что мы покажем в этой статье.

Поэтому в этом посте мы объясним, как скрыть или отключить отображение номера версии PHP в заголовке HTTP-ответа сервера.

Этот параметр можно настроить в загруженном файле конфигурации PHP. Если вы не знаете расположение этого файла конфигурации на вашем сервере, выполните команду ниже, чтобы найти его:

php -i | grep "Loaded Configuration File"
---------------- On CentOS/RHEL/Fedora ---------------- 
Loaded Configuration File => /etc/php.ini

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
Loaded Configuration File => /etc/php/7.0/cli/php.ini

Прежде чем вносить какие-либо изменения в файл конфигурации PHP, я предлагаю вам сначала сделать резервную копию файла конфигурации PHP следующим образом:

---------------- On CentOS/RHEL/Fedora ---------------- 
sudo cp /etc/php.ini /etc/php.ini.orig

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
sudo cp /etc/php/7.0/cli/php.ini  /etc/php/7.0/cli/php.ini.orig  

Затем откройте файл в своем любимом редакторе с правами суперпользователя, например:

---------------- On CentOS/RHEL/Fedora ---------------- 
sudo vi /etc/php.ini

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
sudo vi /etc/php/7.0/cli/php.ini

Найдите ключевое слово expose_php и установите для него значение Off:

expose_php = off

Сохраните файл и выйдите. После этого перезапустите веб-сервер следующим образом:

---------------- On SystemD ---------------- 
sudo systemctl restart httpd
sudo systemctl restart apache2 

---------------- On SysVInit ---------------- 
sudo service httpd restart
sudo service apache2 restart

И последнее, но не менее важное: проверьте, отображается ли в заголовке HTTP-ответа сервера номер вашей версии PHP, используя команду ниже.

lynx -head -mime_header http://localhost 
OR
lynx -head -mime_header http://server-address

где флаги:

  1. -head — отправляет запрос HEAD для заголовков mime.
  2. -mime_header — печатает MIME-заголовок полученного документа вместе с его источником.

Примечание. Убедитесь, что в вашей системе установлен lynx – веб-браузер командной строки.

Вот и все! В этой статье мы объяснили, как скрыть номер версии PHP в заголовке ответа HTTP сервера, чтобы защитить веб-сервер от возможных атак. Вы можете добавить свое мнение к этому сообщению или, возможно, задать любой связанный вопрос через форму комментариев ниже.