Как скрыть номер версии 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
где флаги:
-head
— отправляет запрос HEAD для заголовков mime.-mime_header
— печатает MIME-заголовок полученного документа вместе с его источником.
Примечание. Убедитесь, что в вашей системе установлен lynx – веб-браузер командной строки.
Вот и все! В этой статье мы объяснили, как скрыть номер версии PHP в заголовке ответа HTTP сервера, чтобы защитить веб-сервер от возможных атак. Вы можете добавить свое мнение к этому сообщению или, возможно, задать любой связанный вопрос через форму комментариев ниже.