Sortie SSI disparaît après l'application de correctifs de sécurité

Traductions disponibles Traductions disponibles
Numéro d'article: 318176 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Nous vous recommandons vivement de que tous les utilisateurs mettre à niveau pour Microsoft Internet Information Services (IIS) version 7.0 s'exécutant sur Microsoft Windows Server 2008. IIS 7.0 augmente considérablement la sécurité de l'infrastructure Web. Pour plus savoir sujets liés à la sécurité IIS, reportez-vous au adresse site Web de Microsoft à l'adresse suivante :
http://www.microsoft.com/technet/security/prodtech/IIS.mspx
Pour plus d'informations sur IIS 7.0, reportez-vous au site de Web Microsoft suivant :
http://www.iis.net/default.aspx?tabid=1
Agrandir tout | Réduire tout

Sommaire

Symptômes

Lorsque vous exécutez un programme include côté serveur (SSI) en cliquant le <!--#exec cgi-->appliqué commande sur un serveur qui exécute un Microsoft Windows NT 4.0 avec Service Pack 4 (SP4) ou version ultérieure ou Microsoft Windows 2000 avec Service Pack 2 (SP2) ou version ultérieure appliqué, la sortie du programme n'apparaît pas sur la page. Si vous exécutez le même programme sur un serveur lesquels le correctif n'est pas installé, la sortie est affichée comme prévu.

Cause

Après avoir appliqué ces packs service spécifié, Internet Information Services (IIS) s'attend tout programme SSI exécutée à l'aide de la <!--#exec cgi-->commande pour la spécification CGI (Common Gateway Interface). Cette spécification nécessite des programmes CGI pour imprimer un en-tête HTTP Content-Type avant tout autre résultat. Services Internet (IIS) en mode silencieux ignore cet en-tête et la retire de la sortie finale programme qui il s'affiche sur la page. Si le programme SSI n'inclut pas cet en-tête, IIS exécute le programme mais n'affiche pas les sa sortie. Ceci est une modification du comportement des versions précédentes de Windows, qui ne requièrent pas ces en-têtes et qui affiche les en-têtes HTTP inclus sur la page avant que le reste de la sortie à partir du programme SSI.

Résolution

Vous pouvez effectuer la sortie s'affiche dans une des deux façons :
  1. Exécuter le programme en utilisant le <!--#exec cmd-->commande au lieu du <!--#exec cgi-->la commande. -ou-

  2. Réécrire le programme imprime la ligne suivante, suivie de deux nouvelles lignes avant une autre sortie :
    type de contenu : Text/HTML

Statut

Ce comportement est voulu par la conception même du produit.

Plus d'informations

Pour activer SSIs, procédez comme suit :
  1. Démarrez le Internet Service Manager (ISM), qui charge le composant logiciel enfichable IIS pour MMC (Microsoft Management Console).
  2. Dans la console MMC, double-cliquez sur votre nom de l'ordinateur dans le volet gauche.
  3. Double-cliquez sur le site Web pour lequel vous souhaitez activer SSI.
  4. Cliquez avec le bouton droit sur le répertoire virtuel qui contiendra les fichiers SSI-activé. Pour activer SSI pour le répertoire de base d'un site Web, cliquez avec le bouton droit sur le site Web.
  5. Cliquez sur Propriétés , puis cliquez sur l'onglet répertoire de base .
  6. Sous autorisations d'exécution , cliquez pour sélectionner des scripts et exécutables .
  7. Cliquez sur OK . Veillez à sélectionner les répertoires qui contiennent des fichiers SSI-activée dans l'écran Héritages outrepassés .Pour plus d'informations sur comment faire pour activer la <!--cmd #exec--> commande, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
    233969 SSIEnableCmdDirective est définie à FALSE par défaut

Procédure pour reproduire le comportement

  1. Activer côté serveur inclut pour le répertoire de base de votre site Web par défaut.
  2. Compiler le programme suivant C sur un serveur Windows NT 4.0 ou Windows 2000 lesquels le correctif n'est pas installé :
    #include <stdio.h>
    int main(int argc, char **argv) {
      printf("Hello World\n");
    
    }
  3. Nommez le fichier exécutable helloworld.exe et placez ensuite le fichier dans le répertoire racine de votre serveur Web. Par défaut, ce répertoire est C:\Inetpub\Wwwroot.
  4. Créer la page activée de SSI HTML suivante, puis puis enregistrez la page sous Ssitest.shtm dans le répertoire racine de votre serveur Web :
    <HTML><BODY>
    Exec cmd: <!--#exec cmd="c:\inetpub\wwwroot\HelloWorld.exe"--><BR>
    Exec cgi: <!--#exec cgi="/HelloWorld.exe"-->
    </BODY></HTML>
  5. Accédez à http://localhost/ssitest.shtm sur un ordinateur qui exécute Windows NT 4.0 Service Pack 3 (SP3) ou version antérieure ou Windows 2000 Service Pack 1 (SP1) ou version antérieure. Les éléments suivants s'affichent :
    Exec cmd: Hello World
    Exec cgi: Hello World
  6. Appliquer Windows NT 4.0 SP4 ou version ultérieure ou Windows 2000 SP2 ou version ultérieure à l'ordinateur.
  7. Accédez à http://localhost/ssitest.shtm à nouveau. Désormais les éléments suivants s'affichent :
    Exec cmd: Hello World
    Exec cgi:
  8. Modifier le code de helloworld.exe imprimer tout d'abord un en-tête Content-Type et puis recompilez le fichier :
    #include <stdio.h>
    int main(int argc, char **argv) {
      printf("Content-type: text/html\n");
      printf("Hello World\n");
    
    }
  9. Recharger http://localhost/ssitest.shtm sur un ordinateur qui exécute Windows NT 4.0 SP4 ou version ultérieure ou Windows 2000 SP2 ou version ultérieure. Désormais les éléments suivants s'affichent :
    Exec cmd: Content-type: text/html
     Hello World
    Exec cgi: Hello World
    Remarque que contrairement à la <!--#exec cgi-->commande, le <!--#exec cmd-->commande ne supprime pas les en-têtes CGI à partir de la sortie.

Références

Pour plus d'informations SSIs, consultez la rubrique « côté serveur inclut » dans la documentation en ligne de services Internet (IIS). Pour consulter cette rubrique, recherchez Administration , localisez Gestion des sites Web et recherchez inclut côté serveur . La documentation en ligne de services Internet (IIS) est accessible via l'URL suivante à partir de n'importe quel ordinateur dans la documentation IIS installée :
http://localhost/iishelp

Propriétés

Numéro d'article: 318176 - Dernière mise à jour: jeudi 23 janvier 2014 - Version: 3.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Internet Information Services 5.0
  • Microsoft Internet Information Server 4.0
Mots-clés : 
kbnosurvey kbarchive kbmt kbpending kbprb KB318176 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 318176
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com