Quando viene richiamata una pagina web vengono inviate al cliente una serie di informazioni che generalmente non sono visualizzate, perché interpretate dal browser, ma se effettuiamo una richiesta tramite telnet possiamo visionarle. Ad esempio:
telnet localhost 80 Trying ::1... Connected to localhost. Escape character is '^]'. GET / HTTP/1.1 HTTP/1.1 400 Bad Request Date: Fri, 04 Sep 2009 14:48:57 GMT Server: Apache/2.0.59 (Unix) PHP/5.2.6 DAV/2 Content-Length: 315 Connection: close Content-Type: text/html; charset=iso-8859-1
In grassetto ho evidenziato i dettagli relativi alla versione di apache e di php. In alcuni casi è possibile anche vedere altre informazioni.
Per evitare che il server web risponda con questi dettagli, dobbiamo modificare il file di configurazione, generalmente apache2.conf, ed inserire (o modificare nel caso le direttive siano già presenti con altri valori):
ServerSignature Off
ServerTokens Prod
Oltre a questa variazione nella configurazione di Apache, è opportuno modificare anche PHP in modo che non fornisca dettagli sulla versione (questo rimuoverà la riga X-Powered-By nell’header delle pagine web php richiamate). Occorre modificare il file php.ini ed in particolare la direttiva:
expose_php = Off
Fatto questo basterà riavviare apache, con il classico:
#/etc/init.d/apache2 restart
ed infine si potrà testare che non vengano più mostrate queste informazioni:
telnet localhost 80 Trying ::1... Connected to localhost. Escape character is '^]'. GET / HTTP/1.1 HTTP/1.1 400 Bad Request Date: Fri, 04 Sep 2009 15:05:13 GMT Server: Apache Content-Length: 226 Connection: close Content-Type: text/html; charset=iso-8859-1
Enjoy