La sécurité par l'obscurité n'a jamais été une bonne méthode pour se protéger. Cependant ne pas fournir trop d'informations sur les services et leurs versions écoutant sur notre machine est quand même un élément déterminant, pour rendre la tâche de l'attaquant plus difficile. Ce qui est important, c'est de ne pas se limiter à cela. Ce n'est pas parce que vous filtrez le plus grand nombre d'information que vous êtes en sécurité.
Par défaut
Apache et
PHP envoient des informations sur leurs versions, leurs patchs, le système d'exploitation sur lesquels ils tournent..., que ce soit dans les en-têtes
HTTP ou dans les pages d'erreur (de type 404 par exemple). Cette "fuite" d'information sur la configuration de votre serveur WEB est en générale dans la configuration par défaut d'Apache et PHP.
On peut par exemple trouver dans l'en-tête HTTP des informations de ce type :
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with Suhosin-Patch
X-Powered-By: PHP/5.2.6-1+lenny9
Et dans les fichiers d'erreurs :
Not Found
The requested URL /blog/dfd.html was not found on this server.
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with Suhosin-Patch Server at www.time0ut.org Port 80
Pour empêcher la divulgation de ces informations, il suffit de modifier les paramètres d'apache de cette façon (en général dans
apache.conf) :
ServerTokens Prod
ServerSignature Off
La première ligne limite le paramètre
Server de l'en-tête HTTP à
Apache, et la deuxième ligne enlève les informations des pages d'erreur.
Pour PHP, il faut modifier le fichier php.ini en mettant :
expose_php = Off
Qui aura pour effet de ne plus envoyer la ligne
X-Powered-By de la réponse HTTP du serveur.
Et ça enlève aussi les «easter eggs»
RépondreSupprimerhttp://grokbase.com/t/php/php-bugs/118rd6zm52/php-bug-bug-55497-new-credits-url-security-phpb8b5f2a0-3c92-11d3-a3a9-4c7b08c10000
ce qu'on peut désactiver aussi par htaccesss
http://stackoverflow.com/questions/10458610/how-can-i-disable-phps-easter-egg-urls