Internet Information Server retourne l'adresse IP dans l'en-tête HTTP (Content-Location)


Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Nous conseillons vivement à tous les utilisateurs d'effectuer la mise à niveau vers la version 6.0 de Microsoft Internet Information Services (IIS) sur Microsoft Windows Server 2003. IIS 6.0 augmente considérablement la sécurité de l'infrastructure Web. Pour plus d'informations sur les questions liées à la sécurité avec IIS, reportez-vous au site Web de Microsoft à l'adresse suivante (en anglais) :

Symptômes


Lorsque vous utilisez des pages HTML statiques (par exemple, Default.htm), un en-tête Content-Location est ajouté à la réponse. Par défaut, dans Internet Information Server (IIS), l'en-tête Content-Location fait référence à l'adresse IP du serveur plutôt qu'au nom de domaine complet (FQDN) ou au nom d'hôte.

Cet en-tête peut révéler des adresses IP internes qui sont généralement cachées ou masquées par un pare-feu NAT (Network Address Translation) ou un serveur proxy.

Exemple :
HTTP/1.1 200 OK
Serveur : Microsoft-IIS/4.0
Content-Location : http://10.1.1.1/Default.htm
Date : jeudi 18/02/99 14:03:52 GMT
Content-Type : texte/html
Accept-Ranges : octets
Last-Modified : mercredi 06/01/99 18:56:06 GMT
ETag : "067d136a639be1:15b6"
Content-Length : 4325
Dans cet exemple, l'en-tête Content-Location spécifie l'adresse interne privée de l'ordinateur IIS. Cet en-tête est inchangé lorsqu'il traverse un pare-feu ou un serveur proxy. Par conséquent, la sécurité du réseau interne peut être compromise par la mention des adresses réseau utilisées.

Résolution


Deux solutions sont disponibles selon la version d'IIS utilisée. Appliquez les étapes appropriées à votre version.

Solution pour IIS 4.0, 5.0 ou 5.1

Exemple :

HTTP/1.1 200 OK
Serveur : Microsoft-IIS/4.0 ou Microsoft-IIS/5.0
Content-Location : http://www.domain.com/Default.htm
Date : jeudi 18/02/99 15:08:44 GMT
Content-Type : texte/html
Accept-Ranges : octets
Last-Modified : lundi 30/11/98 15:40:15 GMT
ETag : "f07f84b9771cbe1:3068"
Content-Length : 4739
Avertissement Une utilisation incorrecte du fichier Adsutil.vbs peut provoquer des problèmes graves qui nécessiteront la réinstallation d'Internet Information Server 4.0. Microsoft ne peut pas garantir que les problèmes résultant d'une utilisation incorrecte du fichier Adsutil.vbs puissent être résolus. Vous assumez l'ensemble des risques liés à cette utilisation.

Définition de la valeur sur un serveur IIS 4.0

  1. Ouvrez une fenêtre de commandes (cmd).
  2. Basculez vers le répertoire suivant : winnt\system32\inetsrv\adminsamples.

    Remarque Ce répertoire peut varier en fonction de votre installation IIS.
  3. Tapez la syntaxe suivante :


    adsutil set w3svc/UseHostName True
    Par défaut, cette valeur est définie sur False. Par conséquent, la commande retourne uniquement l'adresse IP de l'ordinateur IIS. La définition de cette valeur sur True retourne le nom de domaine complet (FQDN) de l'ordinateur IIS.
  4. Nous vous recommandons de redémarrer le service Inetinfo après avoir apporté cette modification. Pour arrêter le processus Inetinfo, tapez la commande suivante sur la ligne de commande :


    net stop iisadmin /y
    Remarque Notez tous les services arrêtés de façon à pouvoir les redémarrer.
  5. Tapez la commande suivante :
    net start w3svc
    Remarque Ce service doit être exécuté pour permettre au serveur Web de fonctionner à nouveau. Les autres services dépendront des éléments installés pour IIS ou SiteServer notés à l'étape 4.

Définition de la valeur sur un serveur IIS 5.0

  1. Ouvrez une fenêtre de commandes (cmd).
  2. Basculez vers le répertoire suivant : inetpub\adminscripts.

    Remarque Ce répertoire peut varier en fonction de votre installation IIS.
  3. Tapez la syntaxe suivante :
    adsutil set w3svc/UseHostName True



    Par défaut, cette valeur est définie sur False. Par conséquent, la commande retourne uniquement l'adresse IP de l'ordinateur IIS. La définition de cette valeur sur True retourne le nom de domaine complet (FQDN) de l'ordinateur IIS.
  4. Nous vous recommandons de redémarrer le service Inetinfo ou de redémarrer votre ordinateur après avoir apporté cette modification. Pour arrêter le processus Inetinfo, tapez la commande suivante sur la ligne de commande :
    net stop iisadmin /y
    Remarque Notez tous les services arrêtés de façon à pouvoir les redémarrer.
  5. Tapez la commande suivante :
    net start w3svc
    Remarque Ce service doit être exécuté pour permettre au serveur Web de fonctionner à nouveau. Les autres services dépendront des éléments installés pour IIS ou SiteServer notés à l'étape 4.

IIS 6.0 sur Windows Server 2003

Pour plus d'informations concernant un correctif pour IIS 6.0 sur Windows Server 2003, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.

834141 CORRECTIF : L'adresse IP est révélée dans le champ Content-Location de l'en-tête TCP dans IIS 6.0

Contournement


Pour contourner ce problème, vous pouvez également utiliser des pages ASP (Active Server Pages) plutôt que des pages HTML statiques (.htm ou .html) et créer un en-tête personnalisé renvoyant un emplacement Content-Location spécifique. Le moteur ASP ne retourne pas d'emplacement Content-Location lors de la création de la réponse, ce qui permet d'ajouter un emplacement personnalisé.

Dans IIS 4, 5, 5.1 et 6.0, vous pouvez configurer le site Web pour utiliser un en-tête d'hôte pour répondre aux demandes de contenu. Pour plus d'informations sur la façon de configurer IIS pour utiliser un en-tête d'hôte, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.

190008 Utilisation des noms d'en-tête d'hôte pour héberger plusieurs sites sous une même adresse IP