Tovább a tartalomhoz

Nincs kiírt szoftververzió

A teszt azt nézi, elárulja-e a Server vagy az X-Powered-By fejléc a szoftver pontos verzióját; ha igen, kapcsold ki a kiírását.

A webszerver és a PHP alapból közli a válaszfejlécben, mi fut az oldal mögött, sokszor a pontos verzióval együtt: nginx/1.24.0, Apache/2.4.58, PHP/8.3.6. Az MDN a Server fejlécről azt írja, hogy a finom részletességű szoftverinformáció megkönnyítheti az ismert sebezhetőségek felderítését. Egy támadó a verzióból azonnal látja, melyik ismert hibával próbálkozzon.

A verzió elrejtése nem pótolja a frissítést, de kivesz a kezéből egy könnyű támpontot.

A riport letölti a kezdőoldalt (legfeljebb 5 átirányítást követ), és két fejlécet vizsgál meg ebben a sorrendben: Server, majd X-Powered-By. A teszt kétállapotú.

Eredmény Mikor
Hiba valamelyik fejléc értékében van szám.szám alakú szövegrész (például 1.24, 2.4, 8.3)
Megfelelő egyik fejlécben sincs ilyen, vagy a fejléc nincs a válaszban

Példák a kód szerint:

  • Hiba: nginx/1.24.0, Apache/2.4.58 (Ubuntu), PHP/8.3.6.
  • Megfelelő: nginx, Apache, cloudflare, PHP, és az Apache/2 is, mert ebben nincs pont a számok közt.

Amit a teszt nem csinál:

  • Csak ezt a két fejlécet nézi. A HTML-ben lévő egyéb jelzéseket (például generátor-meta tag, nyilvános fájlok) nem.
  • Csak a kezdőoldal válaszát vizsgálja.
  • Az első találatnál megáll, és csak azt az egy fejlécet jelzi.

A javítás attól függ, melyik fejléc bukott. A riport kártyája is ezt választja szét.

Az nginx http blokkjába:

nginx
server_tokens off;

Az nginx dokumentációja szerint ez kikapcsolja a verzió kiírását a hibaoldalakon és a Server fejlécben. A fejléc ettől még Server: nginx marad.

Az Apache fő konfigurációjába (.htaccess-ben nem működik):

httpd.conf
ServerTokens Prod

Az Apache dokumentációja szerint ekkor a szerver csak ennyit küld: Server: Apache. Ha LiteSpeed fut az Apache helyett: az Enterprise változat az Apache konfigurációját olvassa, az OpenLiteSpeed nem, ott a WebAdmin felületen állítsd be, vagy kérd a tárhelytől.

A php.ini fájlba (vagy kérd a tárhelytől):

php.ini
expose_php = Off

A php.net szerint ez a beállítás dönt arról, hogy a PHP közli-e a verzióját a HTTP-fejlécben (például X-Powered-By: PHP/5.3.7). Az érték csak a php.ini fájlban állítható.

A location ~ \.php$ blokkba, a fastcgi_pass sor mellé:

nginx
fastcgi_hide_header X-Powered-By;

proxy_pass mögött proxy_hide_header X-Powered-By; kell.

.htaccess
<IfModule mod_headers.c>
Header unset X-Powered-By
Header always unset X-Powered-By
</IfModule>

Cloudflare: Rules, Overview, Create rule, Response Header Transform Rule, művelet: válaszfejléc eltávolítása.

Cloudflare
Remove: X-Powered-By

Újraindítás vagy konfigurációbetöltés után a változás érvényesül (nginx: nginx -t, majd reload; a PHP-nél a PHP-FPM újraindítása kell).

Futtasd újra a riportot. Parancssorban is megnézheted:

Terminál
curl -sI "https://pelda.hu/?v=1" | grep -iE '^(server|x-powered-by):'

A jó kimenetben nincs szám.szám a fejlécekben, például server: nginx, vagy a sor hiányzik.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások