Как отключить X-Powered-By, за минуту

X-Powered-ByДобрый день! Уважаемые читатели и гости 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:

  1. ✅Идентификация технологии: Заголовок X-Powered-By позволяет идентифицировать используемую технологию или программное обеспечение на сервере. Например, значение может быть "X-Powered-By: PHP/7.3.9" или "X-Powered-By: ASP.NET".
  2. ✅Отладка и анализ: Заголовок X-Powered-By может быть полезен при отладке и анализе работы веб-сервиса. Он помогает разработчикам определить, какие технологии и версии используются на сервере, что может быть полезно для устранения ошибок и оптимизации производительности.
  3. ❌Информация о безопасности: Заголовок X-Powered-By может содержать информацию о безопасности, такую как "X-Powered-By: Express". Это может быть полезно для злоумышленников, которые могут использовать эту информацию для атак на сервер.
  4. ✅Поддержка клиентов: Заголовок X-Powered-By может быть полезен для клиентов, чтобы узнать, какая технология используется на сервере. Например, разработчики могут использовать эту информацию для выбора правильного клиентского программного обеспечения или библиотеки для взаимодействия с сервером.
  5. ❌Влияние на производительность: Заголовок X-Powered-By может незначительно повлиять на производительность сервера, так как он добавляет дополнительную информацию в ответ сервера. Однако этот эффект обычно незаметен для большинства веб-сервисов.

Полезность и вред заголовка X-Powered-By зависит от конкретного случая и требований безопасности. В некоторых случаях полезно скрыть информацию о используемой технологии для повышения безопасности сервера. В других случаях, например, при разработке и отладке, полезно иметь доступ к этой информации.

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

На каких движках вы можете встретить X-Powered-By

  • Apache
  • Nginx
  • PHP
  • ASP.NET
  • Node.js

Вот пример запроса к серверу по определению X-Powered-By:

Server: nginx/1.20.2
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

Как отключить заголовок X-Powered-By на IIS

Для того чтобы ваш сервер не генерировал заголовок X-Powered-By вам необходимо открыть диспетчер IIS. На уровне сервера найдите иконку "HTTP Responce Header".

Как отключить заголовок X-Powered-By на IIS

Если тут будет строка X-Powered-By, смело ее удаляйте.

HTTP Responce Header удаление X-Powered-By

ASP.NET: В ASP.NET заголовок X-Powered-By может быть отключен путем установки значения "Response.Headers.Remove ("X-Powered-By")" в коде приложения или в файле конфигурации web.config. Включите эти строки в элемент <system.webServer>

<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>

Для IIS 10

<system.web>
<httpRuntime EnableVersionHeader="false"/>

Чтобы отключить заголовок X-Powered-By на IIS с помощью PowerShell, выполните следующие шаги:

Import-Module WebAdministration

  • Выполните команду, чтобы получить текущий конфигурационный файл IIS

$config = Get-WebConfiguration -PSPath 'IIS:\'

  • Получаем секцию httpProtocol в конфигурации

$httpProtocolSection = $config.GetSection('system.webServer/httpProtocol')

  • Устанавливаем значение false для добавления заголовка X-Powered-By

$httpProtocolSection.customHeaders.'add[@name="X-Powered-By"].value' = $false

  • Применяем изменения

$config | Set-WebConfiguration -PSPath 'IIS:\'

Этот код импортирует модуль 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, сделать это можно через подключение на хостинг или ваш сервер, открыв его через текстовый редактор и внеся вот такой код:

<IfModule mod_headers.c>
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.

sudo vi /etc/php.ini

Находим строку expose_php = on и меняем ее на expose_php = off

Не забудьте, что может понадобиться перезапуск сервера:

sudo service httpd restart или sudo service apache2 restart

Так же это можно сделать и на хостинге, например у меня это Mchost. Вам необходимо зайти в настройки сайта и выбрать управление PHP, там найти expose_php. Дождаться применения параметров.

PHP отключение X-Powered-By

Может получиться так, что у вас не будет доступа к файлу php.ini, в таком случае вы можете использовать код PHP. Добавьте в код для удаления X-Powered-By:

<?php header_remove("X-Powered-By");?>

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

<?php header("X-Powered-By: TRALyaLya"); ?>

Как отключить заголовок X-Powered-By на Nginx

В случае с веб-сервером Nginx можно использовать директиву "proxy_hide_header X-Powered-By" в файле конфигурации для скрытия заголовка X-Powered-By.

Впишите в секцию http: server_tokens off;

Как удалить заголовок X-Powered-By в Node.js:

В Node.js заголовок X-Powered-By может быть отключен с помощью модуля Helmet, который позволяет установить значение "hidePoweredBy: true".

Запрещаем X-Powered-By на cloudflare

Создайте правило по пути:

Dashboard > Rules > Transform Rules > Managed Transforms

Влияние на время ответа

До отключения X-Powered-By:

Время ответа 231 мс
Сжатие 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

После выключения:

Время ответа 214 мс вплоть до 174
Сжатие 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

В целом, решение о том, нужно ли отключать заголовок X-Powered-By, зависит от конкретных требований безопасности и конфиденциальности информации. Если информация об используемой технологии не должна быть доступна посторонним пользователям, то рекомендуется отключить этот заголовок. Однако, если требуется отладка или анализ работы сервера, то полезно оставить его включенным. На этом у меня все, с вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.

Оцените статью
Настройка серверов windows и linux
Добавить комментарий


  1. Виктор

    Тысяча спасиб:) закрыли данную брешь на корпоративном сайте, мелочь, а приятно.