Заголовки сервера називають версії програмного забезпечення

У звітіServer headers disclose software versions

server_version_disclosure · Потребує перегляду

Коротка відповідь

Ця порада з безпеки з’являється, коли заголовок Server чи X-Powered-By містить версію продукту, як-от Apache/2.4.41, або X-AspNet-Version дає саму версію, як-от 4.0.30319. З такими подробицями відомі вразливості легше знайти. Приберіть версію або сам заголовок на своєму сервері чи в CDN.

Серйозність: До уваги. Порада з безпеки в розділі «Корисно знати». Приховування версії є необов’язковою гігієною; важливіше оновлювати програмне забезпечення, а вразливість чи вплив на ранжування не встановлюються.

Чому це важливо

MDN зазначає, що заголовок Server із детальними відомостями про серверне програмне забезпечення може полегшити виявлення відомих вразливостей, і радить уникати зайвих подробиць, водночас називаючи користь від його приховування спірною.

Що зробити

  1. Перегляньте знахідку: у ній показано точний рядок заголовка й до десяти сторінок, що його надсилають.
  2. Вимкніть версію в налаштуваннях свого сервера, наприклад server_tokens off в nginx чи ServerTokens Prod в Apache, і зробіть так, щоб ваш застосунок не надсилав X-Powered-By.
  3. Тримайте саме програмне забезпечення оновленим: саме це закриває відомі вразливості.

Коли залишити як є: якщо заголовок задає ваш хостинг чи CDN і ви не можете його змінити, можна залишити як є; важливіше тримати програмне забезпечення оновленим.

Що ми читаємо

Ми читаємо заголовки Server, X-Powered-By і X-AspNet-Version у кінцевій відповіді кожної просканованої сторінки, із власним user agent. Для Server і X-Powered-By фіксується токен виду «продукт/версія», як-от Apache/2.4.41 чи PHP/8.1; сама назва продукту, як-от nginx, — ні. X-AspNet-Version фіксується, коли все його значення — це токен версії, як-от 4.0.30319, навіть без назви продукту.

Сторінки, що надсилають однаковий рядок заголовка, фіксуються разом, одна знахідка на точний рядок. Версія, записана лише в коментарі чи вільному тексті, як-от nginx (1.24.0) чи PHP 7.4.3, не читається як версія, і сторінка позначається як неперевірена для цього заголовка.

Приклад і докази

Ілюстративний приклад — одна відповідь, а не реальний аудит.

https://bakery.example/ та інші її сторінки надсилають:

Server: Apache/2.4.41 (Ubuntu)
X-Powered-By: PHP/8.1.2

Обидва заголовки називають версію, тому кожен рядок фіксується зі сторінками, що його надсилають.

Server: Apache

Можливе виправлення: ServerTokens Prod залишає лише назву продукту, а expose_php = Off прибирає X-Powered-By.

Підтвердити й перевірити знову

Перевірте самі: відкрийте заголовки відповіді сторінки в інструментах розробника вашого браузера й прочитайте Server і X-Powered-By.

Повторна перевірка: Повний аудит — запустіть новий повний аудит. За повного охоплення правилом, зокрема без неоднозначного заголовка версії, що блокує висновок, ця знахідка для точного рядка заголовка закривається, лише коли жодна наразі просканована сторінка більше його не надсилає; нова сторінка зі старим рядком залишає її відкритою. Змінена версія — це інший рядок заголовка, і вона може створити ще одну знахідку.

Обмеження та джерела

Перевірка читає лише три заголовки, а не Via, інші заголовки чи тег generator у HTML, і нічого не каже про те, чи є версія вразливою. CDN перед вашим сервером може додавати або переписувати Server.

Упевненість: Висока, бо заголовки зчитуються безпосередньо.

Джерела

  • MDN, Заголовок Server — зазначає, що заголовок Server із детальними відомостями про реалізацію може полегшити виявлення відомих вразливостей, водночас називаючи користь від його приховування спірною. Перевірено 28 вересня 2026.

Редакційна перевірка: 2 листопада 2026