Resultados de SSI desaparece después de aplicar revisiones de seguridad

Seleccione idioma Seleccione idioma
Id. de artículo: 318176 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Recomendamos encarecidamente que todos los usuarios actualizar a Microsoft Internet Information Services (IIS) versión 7.0 que se ejecutan en Microsoft Windows Server 2008. IIS 7.0 aumenta notablemente la seguridad de la infraestructura Web. Para obtener más información acerca de temas relacionados con la seguridad IIS, visite el siguiente sitio Web de Microsoft:
http://www.microsoft.com/technet/security/prodtech/IIS.mspx
Para obtener más información acerca de IIS 7.0, visite el siguiente sitio Web de Microsoft:
http://www.iis.net/default.aspx?tabid=1
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando se ejecuta un programa de inclusión del servidor (SSI) utilizando el <!--# exec cgi--> aplicado de comando en un servidor que está ejecutando en Microsoft Windows NT 4.0 con Service Pack 4 (SP4) o posterior o aplicado en Microsoft Windows 2000 con Service Pack 2 (SP2) o posterior, el resultado del programa no aparece en la página. Si ejecuta el mismo programa en un servidor que no se han aplicado revisiones, el resultado aparece como se esperaba.

Causa

Después de aplicar estos paquetes de servicio especificado, servicios de Internet Information Server (IIS) espera cualquier programa de SSI que se ejecuta utilizando el <!--# exec cgi--> comandos para seguir la especificación CGI (Common Gateway Interface). Esta especificación requiere programas para imprimir un encabezado Content-Type antes de cualquier otro resultado. Silencio IIS pasa por alto este encabezado y lo quita del resultado del programa final que se muestra en la página. Si el programa de SSI no incluye este encabezado, IIS ejecuta el programa pero no muestra ninguna de sus resultados. Se trata de un cambio del comportamiento de versiones anteriores de Windows, que no requieren estos encabezados y que mostrar los encabezados HTTP incluidos en la página antes que el resto de la salida desde el programa de SSI.

Solución

Puede hacer que el resultado aparece en una de estas dos maneras:
  1. Ejecutar el programa mediante la <!--# exec cmd--> comandos en lugar de la <!--# exec cgi--> comandos. -o bien -

  2. Vuelva a escribir el programa para imprimir la siguiente línea, seguida por dos líneas nuevas, antes de cualquier otro resultado:
    content-type: text/html

Estado

Este comportamiento es por diseño.

Más información

Para habilitar SSI, siga estos pasos:
  1. Inicie el Administrador de servicio de Internet (ISM), que carga el complemento IIS para Microsoft Management Console (MMC).
  2. En MMC, haga doble clic en su nombre de equipo en el panel izquierdo.
  3. Haga doble clic en el sitio Web para el que desea habilitar SSI.
  4. Haga clic con el botón secundario del mouse en el directorio virtual que contendrá los archivos SSI habilitadas. Para habilitar SSI para el directorio particular de un sitio Web, haga clic con el botón secundario del mouse en el sitio Web.
  5. Haga clic en Propiedades y, a continuación, haga clic en la ficha Directorio principal .
  6. En permisos de ejecución , haga clic para seleccionar secuencias de comandos y ejecutables .
  7. Haga clic en Aceptar . Asegúrese de seleccionar los directorios que contienen archivos SSI habilitadas en la pantalla Omitir herencia .Para obtener información adicional acerca de cómo habilitar la <!--# exec cmd--> comando, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    233969SSIEnableCmdDirective se establece en FALSE de forma predeterminada

Pasos para reproducir el comportamiento

  1. Habilitar la inclusión del servidor del directorio particular del sitio Web predeterminado.
  2. Compile el programa siguiente de C en un servidor que no se han aplicado revisiones de Windows NT 4.0 o Windows 2000:
    #include <stdio.h>
    int main(int argc, char **argv) {
      printf("Hello World\n");
    
    }
  3. Nombre del archivo ejecutable helloworld.exe y coloque el archivo en el directorio raíz del servidor Web. De forma predeterminada, este directorio es C:\Inetpub\Wwwroot.
  4. Cree la siguiente página HTML SSI habilitadas y guarde la página como Ssitest.shtm en el directorio raíz del servidor Web:
    <HTML><BODY>
    Exec cmd: <!--#exec cmd="c:\inetpub\wwwroot\HelloWorld.exe"--><BR>
    Exec cgi: <!--#exec cgi="/HelloWorld.exe"-->
    </BODY></HTML>
  5. Vaya a http://localhost/ssitest.shtm en un equipo que ejecuta Windows NT 4.0 Service Pack 3 (SP3) o anterior o Windows 2000 Service Pack 1 (SP1) o anterior. Se ve lo siguiente:
    Exec cmd: Hello World
    Exec cgi: Hello World
  6. Aplicar Windows NT 4.0 SP4 o posterior o Windows 2000 SP2 o posterior en el equipo.
  7. Vaya a http://localhost/ssitest.shtm de nuevo. Ahora verá lo siguiente:
    Exec cmd: Hello World
    Exec cgi:
  8. Modifique el código para helloworld.exe imprimir un encabezado Content-Type primero y, a continuación, vuelva a compilar el archivo:
    #include <stdio.h>
    int main(int argc, char **argv) {
      printf("Content-type: text/html\n");
      printf("Hello World\n");
    
    }
  9. Volver a cargar http://localhost/ssitest.shtm en un equipo que ejecuta Windows NT 4.0 SP4 o posterior o Windows 2000 SP2 o posterior. Ahora verá lo siguiente:
    Exec cmd: Content-type: text/html
     Hello World
    Exec cgi: Hello World
    tenga en cuenta que a diferencia de la <!--# exec cgi--> comandos la <!--# exec cmd--> comando no quita los encabezados CGI de los resultados.

Referencias

Para obtener más información acerca de SSI, vea el tema "Inclusiones de servidor" en la documentación en pantalla de IIS. Para ver este tema, busque Administración , busque Administración de sitios Web y, a continuación, busque Inclusiones de servidor . La documentación en pantalla de IIS es accesible a través de la dirección URL siguiente desde cualquier equipo con la documentación de IIS instalada:
http://localhost/iishelp

Propiedades

Id. de artículo: 318176 - Última revisión: domingo, 09 de febrero de 2014 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft Internet Information Services 5.0
  • Microsoft Internet Information Server 4.0
Palabras clave: 
kbnosurvey kbarchive kbmt kbpending kbprb KB318176 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 318176

Enviar comentarios

 

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