Problème : Suppression des en-têtes du serveur Apache
L'en-tête "Server: Apache" dans les réponses HTTP peut révéler des informations sur le logiciel du serveur web. Cela peut constituer un risque de sécurité en fournissant aux attaquants potentiels des détails sur la configuration du serveur.
Tentatives courantes pour supprimer l'en-tête
Modification du fichier httpd.conf
Les administrateurs essaient souvent de supprimer ou de modifier l'en-tête "Server: Apache" en éditant le fichier httpd.conf. Voici quelques méthodes courantes :
-
Utilisation de ServerSignature Off : Cela désactive la signature du serveur sur les pages générées par le serveur, comme les documents d'erreur. Cependant, cela n'affecte pas l'en-tête Server dans les réponses HTTP.
-
Configuration de ServerTokens Prod : Cela réduit les informations dans l'en-tête Server à simplement "Apache" sans numéros de version ou autres détails. Cela limite les informations partagées mais ne supprime pas complètement l'en-tête.
-
Utilisation de Header unset Server : Certains administrateurs essaient cela pour supprimer entièrement l'en-tête Server. Cependant, cela ne fonctionne pas car Apache ne permet pas la suppression complète de cet en-tête uniquement par des paramètres de configuration.
Ces méthodes peuvent réduire les informations dans l'en-tête Server, mais elles ne le suppriment pas complètement. L'en-tête indiquera toujours "Apache" comme logiciel serveur, ce que certains administrateurs considèrent comme un problème de sécurité.
Conseil: Envisagez d'utiliser un proxy inverse
Pour ceux qui souhaitent masquer complètement l'en-tête du serveur Apache, l'utilisation d'un proxy inverse comme Nginx peut être une bonne option. Nginx peut être configuré pour remplacer ou supprimer l'en-tête du serveur Apache avant d'envoyer la réponse au client. Cela ajoute une couche supplémentaire de sécurité et de contrôle sur les informations partagées concernant la configuration de votre serveur.
Pourquoi la suppression complète de l'en-tête est difficile
Les développeurs du serveur HTTP Apache ne permettent pas la suppression complète de l'en-tête "Server: Apache" uniquement par des paramètres. Ils ont plusieurs raisons pour cela :
-
Statistiques d'utilisation : L'en-tête aide à suivre les installations d'Apache dans le monde. Ces données montrent la part de marché et les tendances d'utilisation d'Apache.
-
Débogage : L'en-tête du serveur aide à résoudre les problèmes. Il fournit des informations pour identifier les problèmes spécifiques au serveur.
-
Spécification HTTP : Il y a une question sur le fait de savoir si la suppression de l'en-tête du serveur respecte les spécifications HTTP.
-
Préoccupations de sécurité : Les développeurs affirment que la suppression de l'en-tête n'améliore pas beaucoup la sécurité. Ils pensent que cela pourrait créer un faux sentiment de sécurité.
-
Gestion des serveurs proxy : Certains serveurs proxy utilisent l'en-tête du serveur pour mieux gérer les requêtes. Le supprimer pourrait affecter ces processus.
-
Autres options : Les développeurs suggèrent aux utilisateurs qui ont besoin de modifier l'en-tête d'éditer le code source ou d'utiliser des proxys inverses.
Ces raisons ont conduit Apache à conserver l'en-tête du serveur, même lorsque les administrateurs essaient de le supprimer complètement via les paramètres.
Conseil: Personnalisation de l'en-tête du serveur
Bien que vous ne puissiez pas complètement supprimer l'en-tête "Server: Apache", vous pouvez le personnaliser en utilisant la directive ServerTokens dans votre configuration Apache. Définissez-la sur "ProductOnly" pour afficher uniquement "Apache" sans information de version :
ServerTokens ProductOnly
Cette approche équilibre les exigences d'Apache avec la minimisation des informations exposées.