Как отключить X-Powered-By, за минуту
- Что такое заголовок X-Powered-By
- На каких движках вы можете встретить X-Powered-By
- Как отключить заголовок X-Powered-By на IIS
- Как удалить заголовок X-Powered-By в Apache
- Как удалить заголовок X-Powered-By через PHP
- Как отключить заголовок X-Powered-By на Nginx
- Как удалить заголовок X-Powered-By в Node.js:
- Запрещаем X-Powered-By на cloudflare
- Влияние на время ответа
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами познакомились с очень полезной утилитой Windows Admin Center, которая позволяет вам очень большие возможности по администрированию серверов и клиентских рабочих станций в домене. Сегодня я хочу с вами поговорить немного про безопасность веб ресурсов, а именно разобрать, что из себя представляет заголовок X-Powered-By, как его отключение может положительным образом сыграть на работе сайта. Я покажу, как отключать X-Powered-By для разных платформ. Думаю, что после прочтения данной статьи вы не поленитесь и сделаете это.
Что такое заголовок X-Powered-By
Все началось после попадания сайта под фильтр МПК от Яндекса, я рассматривал много всего, что можно улучшить и оптимизировать, например обновил PHP на сайте, а так же установил самую последнюю версию CMS WordPress 6.3, повысив безопасность и скорость. Но безопасность настолько многогранное направление, что 100% вы защититься не сможете, но стремиться к этому нужно. И вот в один из вечеров я наткнулся на X-Powered-By.
X-Powered-By - это заголовок HTTP, который обычно включается в ответ сервера при обработке запросов. Он указывает на программное обеспечение или технологию, используемую для работы веб-сервиса.
Особенности заголовка X-Powered-By:
- ✅Идентификация технологии: Заголовок X-Powered-By позволяет идентифицировать используемую технологию или программное обеспечение на сервере. Например, значение может быть "X-Powered-By: PHP/7.3.9" или "X-Powered-By: ASP.NET".
- ✅Отладка и анализ: Заголовок X-Powered-By может быть полезен при отладке и анализе работы веб-сервиса. Он помогает разработчикам определить, какие технологии и версии используются на сервере, что может быть полезно для устранения ошибок и оптимизации производительности.
- ❌Информация о безопасности: Заголовок X-Powered-By может содержать информацию о безопасности, такую как "X-Powered-By: Express". Это может быть полезно для злоумышленников, которые могут использовать эту информацию для атак на сервер.
- ✅Поддержка клиентов: Заголовок X-Powered-By может быть полезен для клиентов, чтобы узнать, какая технология используется на сервере. Например, разработчики могут использовать эту информацию для выбора правильного клиентского программного обеспечения или библиотеки для взаимодействия с сервером.
- ❌Влияние на производительность: Заголовок X-Powered-By может незначительно повлиять на производительность сервера, так как он добавляет дополнительную информацию в ответ сервера. Однако этот эффект обычно незаметен для большинства веб-сервисов.
Полезность и вред заголовка X-Powered-By зависит от конкретного случая и требований безопасности. В некоторых случаях полезно скрыть информацию о используемой технологии для повышения безопасности сервера. В других случаях, например, при разработке и отладке, полезно иметь доступ к этой информации.
На каких движках вы можете встретить X-Powered-By
- Apache
- Nginx
- PHP
- ASP.NET
- Node.js
Вот пример запроса к серверу по определению X-Powered-By:
Date: Wed, 04 Oct 2023 22:11:49 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 93882
Connection: keep-alive
Cache-Control: private, max-age=600
Last-Modified: Wed, 04 Oct 2023 22:11:49 GMT
X-AspNetMvc-Version: 4.0
X-AspNet-Version: 4.0.30319
Set-Cookie: Culture=ru; domain=myseldon.com; path=/
X-Powered-By: ASP.NET
Strict-Transport-Security: max-age=2592000
Тут видно, что сайт работает на IIS ASP.NET.
Как отключить заголовок X-Powered-By на IIS
Для того, чтобы ваш сервер не генерировал заголовок X-Powered-By вам необходимо открыть диспетчер IIS. На уровне сервера найдите иконку "HTTP Responce Header".
Если тут будет строка X-Powered-By, смело ее удаляйте.
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
Для IIS 10
<system.web>
<httpRuntime EnableVersionHeader="false"/>
Чтобы отключить заголовок X-Powered-By на IIS с помощью PowerShell, выполните следующие шаги:
- Откройте PowerShell от имени администратора.
- Введите следующую команду, чтобы импортировать модуль WebAdministration:
- Выполните команду, чтобы получить текущий конфигурационный файл IIS
- Получаем секцию httpProtocol в конфигурации
- Устанавливаем значение false для добавления заголовка X-Powered-By
- Применяем изменения
Этот код импортирует модуль WebAdministration, получает конфигурацию IIS и устанавливает значение false для добавления заголовка X-Powered-By в секции httpProtocol. Затем изменения применяются к конфигурации IIS с помощью Set-WebConfiguration.
Как удалить заголовок X-Powered-By в Apache
Для отключения заголовка X-Powered-By веб-сервере Apache можно использовать директиву "Header unset X-Powered-By" в файле конфигурации .htaccess или httpd.conf. Для этого вам нужно отредактировать ваш файл .htaccess, сделать это можно через подключение на хостинг или ваш сервер, открыв его через текстовый редактор и внеся вот такой код:
Header unset x-powered-by
</IfModule>
Еще вариант:
- Включите модуль mod_headers с помощью заголовков a2enmod.
- Откройте файл apache httpd.conf, который доступен внутри /usr/local/apache2/conf.
- Удалите заголовок X-Powered-By, если он существует.
- Перезапустите Apache с помощью systemctl, перезапустите apache2.
Как удалить заголовок X-Powered-By через PHP
Для отключения заголовка X-Powered-By в PHP можно использовать функцию header_remove() или установить значение "expose_php = Off" в файле php.ini.
Находим строку expose_php = on и меняем ее на expose_php = off
Не забудьте, что может понадобиться перезапуск сервера:
Так же это можно сделать и на хостинге, например у меня это Mchost. Вам необходимо зайти в настройки сайта и выбрать управление PHP, там найти expose_php. Дождаться применения параметров.
Может получиться так, что у вас не будет доступа к файлу php.ini, в таком случае вы можете использовать код PHP. Добавьте в код для удаления X-Powered-By:
Если хотите поиздеваться, над теми. кто обычно эти заголовки просматривает ,то можете указать вообще свое значение:
Как отключить заголовок X-Powered-By на Nginx
В случае с веб-сервером Nginx можно использовать директиву "proxy_hide_header X-Powered-By" в файле конфигурации для скрытия заголовка X-Powered-By.
Как удалить заголовок X-Powered-By в Node.js:
В Node.js заголовок X-Powered-By может быть отключен с помощью модуля Helmet, который позволяет установить значение "hidePoweredBy: true".
Запрещаем X-Powered-By на cloudflare
Создайте правило по пути:
Влияние на время ответа
До отключения X-Powered-By:
Сжатие gzip Нет
Размер ответа 11.4 Кб
Заголовок Last-Modified Нет
server: nginx
date: Wed, 04 Oct 2023 22:52:48 GMT
content-type: text/html; charset=UTF-8
content-length: 11632
x-powered-by: PHP/7.3.2
vary: Accept-Encoding,Cookie,User-Agent
cache-control: max-age=3, must-revalidate
cache-control: max-age=600
last-modified: Wed, 04 Oct 2023 15:34:31 GMT
expires: Wed, 04 Oct 2023 23:02:48 GMT
content-encoding: gzip
После выключения:
Сжатие gzip Нет
Размер ответа 11.4 Кб
Заголовок Last-Modified Нет
server: nginx
date: Wed, 04 Oct 2023 23:26:29 GMT
content-type: text/html; charset=UTF-8
content-length: 11632
vary: Accept-Encoding,Cookie,User-Agent
cache-control: max-age=3, must-revalidate
cache-control: max-age=600
last-modified: Wed, 04 Oct 2023 15:34:31 GMT
expires: Wed, 04 Oct 2023 23:36:29 GMT
content-encoding: gzip
В целом, решение о том, нужно ли отключать заголовок X-Powered-By, зависит от конкретных требований безопасности и конфиденциальности информации. Если информация о используемой технологии не должна быть доступна посторонним пользователям, то рекомендуется отключить этот заголовок. Однако, если требуется отладка или анализ работы сервера, то полезно оставить его включенным. На этом у меня все, с вами был Иван Сёмин ,автор и создатель IT портала Pyatilistnik.org.
Тысяча спасиб:) закрыли данную брешь на корпоративном сайте, мелочь, а приятно.