Saída de SSI desaparece depois de aplicar patches de segurança

Traduções de Artigos Traduções de Artigos
Artigo: 318176 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Recomendamos vivamente que todos os utilizadores actualizem para Microsoft (IIS) versão 7.0 em execução no Microsoft Windows Server 2008. O IIS 7.0 aumenta significativamente a segurança da infra-estrutura Web. Para mais informações sobre tópicos relacionados com a segurança do IIS, visite o seguinte Web site da Microsoft:
http://www.microsoft.com/technet/security/prodtech/IIS.mspx
Para obter mais informações sobre o IIS 7.0, visite o seguinte Web site da Microsoft:
http://www.iis.net/default.aspx?tabid=1
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando executar um programa de inclusão do lado do servidor (SSI) utilizando o <!--# exec cgi--> aplicada de comando num servidor com o Microsoft Windows NT 4.0 com Service Pack 4 (SP4) ou posterior ou Microsoft Windows 2000 com Service Pack 2 (SP2) ou posterior aplicado, a saída do programa não aparece na página. Se executar o programa mesmo num servidor sem patches instalados, a saída é apresentada como previsto.

Causa

Depois de aplicar estes especificado service packs, serviços de informação Internet (IIS) espera qualquer programa de SSI que é executado utilizando o <!--# exec cgi--> comandos a seguir a especificação de interface comum para gateways (CGI, Common Gateway Interface). Esta especificação requer os programas CGI para imprimir um cabeçalho HTTP Content-Type antes de qualquer saída. O IIS silenciosamente ignora este cabeçalho e remove o resultado final do programa que apresenta na página. Se o programa de SSI não incluir este cabeçalho, o IIS executa o programa mas não apresenta qualquer uma das suas saídas. Esta é uma alteração do comportamento de versões anteriores do Windows, que não requerem estes cabeçalhos e qual apresentar quaisquer cabeçalhos HTTP incluídos na página antes do resto da saída do programa SSI.

Resolução

Pode efectuar os resultados aparecem em uma de duas formas:
  1. Executar o programa utilizando o <!--# exec cmd--> comandos em vez do <!--# exec cgi--> comandos. - ou -

  2. Reescreva o programa imprima a seguinte linha, seguida de duas novas linhas, antes de qualquer saída:
    content-type: text/html

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

Para activar SSIs, siga estes passos:
  1. Inicie o Internet Service Gestor (ISM Manager), que carrega o snap-in do IIS para a consola (gestão da Microsoft).
  2. Na MMC, clique duas vezes o nome de computador no painel da esquerda.
  3. Faça duplo clique no Web site para o qual pretende activar o SSI.
  4. Clique com o botão direito do rato o directório virtual que irá conter os ficheiros compatíveis com SSI. Para activar o SSI para o directório raiz de um Web site, clique com o botão direito do rato no Web site.
  5. Clique em Propriedades e, em seguida, clique no separador Directório inicial .
  6. Em permissões de execução , clique para seleccionar scripts e executáveis .
  7. Clique em OK . Não se esqueça seleccione quaisquer directórios que contêm ficheiros compatíveis com o SSI no ecrã Heranças a ignorar .Para obter informações adicionais sobre como activar o <!--# exec cmd--> comando, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
    233969SSIEnableCmdDirective está definido para FALSE por predefinição

Passos para reproduzir o comportamento

  1. Activar server-side includes para o directório raiz do Web site predefinido.
  2. Compilar o seguinte programa C num servidor Windows NT 4.0 ou Windows 2000 sem patches instalados:
    #include <stdio.h>
    int main(int argc, char **argv) {
      printf("Hello World\n");
    
    }
  3. Atribua um nome de ficheiro executável Helloworld.exe e, em seguida, coloque o ficheiro no directório raiz do servidor Web. Por predefinição, este directório é C:\Inetpub\Wwwroot.
  4. Criar a página HTML activado SSI seguinte e, em seguida, guarde a página como Ssitest.shtm no directório raiz do servidor Web:
    <HTML><BODY>
    Exec cmd: <!--#exec cmd="c:\inetpub\wwwroot\HelloWorld.exe"--><BR>
    Exec cgi: <!--#exec cgi="/HelloWorld.exe"-->
    </BODY></HTML>
  5. Navegue para http://localhost/ssitest.shtm num computador com o Windows NT 4.0 Service Pack 3 (SP3) ou anterior ou o Windows 2000 Service Pack 1 (SP1) ou anterior. Consulte o seguinte:
    Exec cmd: Hello World
    Exec cgi: Hello World
  6. Aplicar o Windows NT 4.0 SP4 ou posterior ou o Windows 2000 SP2 ou posterior para o computador.
  7. Procure http://localhost/ssitest.shtm novamente. Agora verá o seguinte:
    Exec cmd: Hello World
    Exec cgi:
  8. Modifique o código para Helloworld.exe imprimir um cabeçalho Content-Type primeiro e, em seguida, volte a compilar o ficheiro:
    #include <stdio.h>
    int main(int argc, char **argv) {
      printf("Content-type: text/html\n");
      printf("Hello World\n");
    
    }
  9. Recarregar http://localhost/ssitest.shtm num computador com o Windows NT 4.0 SP4 ou posterior ou o Windows 2000 SP2 ou posterior. Agora verá o seguinte:
    Exec cmd: Content-type: text/html
     Hello World
    Exec cgi: Hello World
    Note que ao contrário de <!--# exec cgi--> comandos, o <!--# exec cmd--> comando não remove quaisquer cabeçalhos CGI a saída.

Referências

Para obter mais informações sobre SSIs, consulte o tópico "Server-Side Includes" da documentação online do IIS. Para ver este tópico, localize Administração , localize Da gestão de Web sites e, em seguida, localize a Server-Side Includes . A documentação online do IIS está acessível através do seguinte URL a partir de qualquer computador com a documentação do IIS instalada:
http://localhost/iishelp

Propriedades

Artigo: 318176 - Última revisão: 12 de fevereiro de 2014 - Revisão: 3.1
A informação contida neste artigo aplica-se a:
  • Microsoft Internet Information Services 5.0
  • Microsoft Internet Information Server 4.0
Palavras-chave: 
kbnosurvey kbarchive kbmt kbpending kbprb KB318176 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 318176

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