Server
Utilisation
Les serveurs incluent l’en-tête Server pour identifier le logiciel, et éventuellement la version, qui traite la requête. La valeur suit un format de jeton de produit semblable à celui de l’en-tête de requête User-Agent : un ou plusieurs noms de produits, chacun éventuellement suivi d’une version et d’un commentaire.
Le niveau de détail de Server varie selon le déploiement. Révéler des versions logicielles précises crée un risque de sécurité. Les attaquants recherchent les vulnérabilités connues de versions particulières de serveurs web, de frameworks et de systèmes d’exploitation. Un en-tête Server détaillé facilite cette reconnaissance.
Remarque
Révéler les informations de version dans l’en-tête Server aide les attaquants à rechercher des vulnérabilités connues. Les déploiements en production ont tout intérêt à limiter la valeur à un nom de produit générique ou à supprimer l’en-tête entièrement.
Les approches courantes pour atténuer ce risque sont les suivantes :
La plupart des serveurs web offrent des options de configuration pour contrôler la valeur de l’en-tête Server. Nginx utilise la directive server_tokens. Apache utilise ServerTokens et ServerSignature. Les reverse proxies et les CDN remplacent souvent la valeur du serveur d’origine par leur propre identifiant.
product
Un ou plusieurs jetons de produit identifiant le logiciel serveur. Chaque jeton inclut éventuellement une version séparée par une barre oblique, ainsi qu’un commentaire entre parenthèses.
Server: <product>/<version> (<comment>)
Plusieurs produits apparaissent séparés par des espaces, listés par ordre d’importance.
Exemple
Une réponse minimale identifie le logiciel serveur sans exposer de numéro de version. C’est l’approche recommandée pour les environnements de production.
Server: nginx
Certains serveurs incluent des détails de version et des informations sur le système d’exploitation. Ce format expose une plus grande surface aux analyses fondées sur les versions.
Server: Apache/2.4.57 (Ubuntu)
Les CDN et les plateformes cloud remplacent souvent la valeur du serveur d’origine par leur propre nom de produit.
Server: cloudflare
Une valeur personnalisée ou volontairement vague masque la pile technologique sous-jacente.
Server: webserver
Configuration
Supprimez ou réduisez au minimum l’en-tête Server afin de limiter les fuites d’information en production.
nginx :
server_tokens off;
Cela réduit la valeur à nginx, sans numéro de version. Pour supprimer l’en-tête entièrement, le module headers-more est nécessaire :
more_clear_headers Server;
Apache :
ServerTokens Prod
ServerSignature Off
ServerTokens Prod réduit la valeur à Apache, sans détails de version ni de modules. ServerSignature Off retire les informations serveur des pages d’erreur.
IIS :
Supprimez l’en-tête via des règles sortantes URL Rewrite, ou définissez removeServerHeader=“true” dans applicationHost.config (.NET 8+).