← Tutti i controlli
SicurezzaGravità tipica: Basso

Scanner di fughe nelle intestazioni

Rileva intestazioni come X-Powered-By o Server che rivelano agli attaccanti la tua tecnologia e la sua versione.

Cosa controlla

Questo scanner cerca header di risposta come X-Powered-By o Server che rivelano quale tecnologia e versione usa il tuo sito. Segnala quando il server condivide troppo sul proprio interno. È un'informazione che non dà nulla al visitatore ma parecchio a un attaccante.

Perché è importante

Conoscere il tuo framework e la sua versione esatta permette a un attaccante di cercare vulnerabilità note per quella versione precisa. Gli risparmia lavoro di ricognizione e rende il tuo sito un bersaglio più facile. Non è una falla grave di per sé, ma aggiunge rischio inutile.

Come risolverlo

Configura il tuo server o framework per rimuovere o nascondere questi header informativi dalle risposte. Molte piattaforme offrono un'opzione di una riga per disattivare l'header della tecnologia. È una modifica rapida che riduce la quantità di informazioni esposte.

Come funziona questo controllo

Scanaris legge gli header della risposta principale della tua pagina e ne guarda due in particolare. Se esiste X-Powered-By con qualsiasi valore (per esempio Express, PHP/8.2.12 o Next.js), apre un rilievo di gravità bassa. Se esiste Server e il suo valore contiene un numero di versione (qualcosa come nginx/1.18.0 o Apache/2.4.57), ne apre un altro. Un semplice Server: nginx o Server: cloudflare non viene segnalato: dire quale server usi non è un problema; dire esattamente quale versione, sì.

Perché è importante

Nessuno di questi due header serve a qualcosa per l'utente o per il browser. Esistono per abitudine. Quello che fanno è risparmiare lavoro a chi cerca una vulnerabilità: con PHP/7.4.3 o Apache/2.4.49 nella risposta, l'attaccante non deve indovinare nulla, va dritto alla lista delle falle note di quella versione e prova quelle con exploit pubblico. È un rilievo di gravità bassa perché da solo non apre nessuna porta; ma è tra i più facili da chiudere, e gli scanner di massa filtrano i loro bersagli proprio su questi header.

Come rimuoverli a seconda del tuo stack

  • Express: app.disable('x-powered-by') alla creazione dell'app, oppure usa helmet(), che lo rimuove insieme ad altri irrobustimenti.
  • Next.js: invia X-Powered-By: Next.js di default. In next.config.js, poweredByHeader: false.
  • PHP: in php.ini, expose_php = Off. Su hosting condiviso di solito si può cambiare dal pannello o con un .user.ini.
  • ASP.NET: in web.config, dentro customHeaders, <remove name="X-Powered-By" />, e in IIS disattiva anche l'header X-AspNet-Version con enableVersionHeader="false".
  • nginx: server_tokens off; nel blocco http. Continua a dire "nginx", ma senza versione.
  • Apache: ServerTokens Prod e ServerSignature Off nella configurazione principale. Con Prod l'header diventa semplicemente Apache.
  • Vercel, Netlify, Cloudflare Pages: non inviano versione in Server. Se vedi X-Powered-By lì, viene dal tuo framework (Next.js o Express), non dalla piattaforma.

Se hai un proxy o una CDN davanti (Cloudflare, un bilanciatore), controlla la risposta pubblica: a volte il proxy sostituisce l'header Server e il problema sparisce da solo, ma X-Powered-By di solito passa intatto.

Verifica che sia risolto

curl -sI https://tuodominio.it | grep -iE "^(server|x-powered-by):"

L'ideale è che X-Powered-By non compaia e che Server, se compare, non porti numeri. Prova anche una rotta dell'API o una pagina di errore (un URL che non esiste): gli errori a volte vengono generati in un altro livello che aggiunge di nuovo l'header.

Domande frequenti

Nascondere la versione non risolve la vulnerabilità. A cosa serve?

A non essere nella prima pagina dei risultati di chi cerca vittime. Hai ragione che la soluzione vera è aggiornare: nascondere la versione è il complemento, non il sostituto. Le due cose insieme costano cinque minuti.

Il mio hosting non mi lascia toccare la configurazione del server.

In quel caso, rimuovi almeno X-Powered-By dal tuo codice o dal tuo .htaccess (Header unset X-Powered-By) e chiedi all'hosting di nascondere la versione. Gli altri header di sicurezza, quelli che dovresti avere, sono esaminati dal controllo header di sicurezza.

Perché "Server: cloudflare" non viene segnalato?

Perché non rivela nulla di sfruttabile: né versione né software specifico dietro. Quello che si cerca qui è informazione che accorci la strada verso un exploit. Quali header conviene avere e quali sono solo rumore lo spiega header HTTP spiegati per umani.

Verificalo sul tuo sito

Scansiona il tuo sito gratis e scopri se questo e altri 44 controlli passano, con un prompt di fix per ogni problema.

Scansiona il mio sito gratis

Controlli correlati