Como rever código MTS/ASP CSSI vulnerabilidade

Traduções de Artigos Traduções de Artigos
Artigo: 253121 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Sumário

Este artigo descreve como identificar e corrigir aplicações de ASP (Microsoft transacções Server/Active Server Pages) são susceptíveis a acesso a sites scripts problemas de segurança (CSSI). Apenas entradas validada ou formatadas correctamente não torna a aplicação vulnerável a ataques.

Mais Informação

Problemas CSSI têm raiz na forma como uma aplicação processa a validação de dados e formatação, para melhor é tackled da camada de apresentação.

Nesta camada, normalmente, terão de páginas ASP e ocasionalmente pode incluir alguns componentes ajudá-lo no processamento de HTML para a página ASP para apresentar.

Neste último caso é importante ter em atenção que apesar da aplicação deve efectuar as mesmas operações para proteger próprio de CSSI uma aplicação de ASP, a implementação física fará com que alguns do código de validação de formatação para executar as páginas ASP e alguns no componente. Para obter informações detalhadas sobre CSSI e ASP, consulte o seguinte artigo da base de dados de conhecimento da Microsoft:
253119Como rever código ASP para vulnerabilidade CSSI
Os passos seguintes irão ajudá-lo identificar e corrigir aplicações ASP susceptíveis a CSSI:
  1. Procure ASP ou componente de código que gera HTML a ser apresentado. Existem dois cenários típicos:
    • O componente cria e devolve uma cadeia HTML ASP vai escrever directamente para a resposta.
    • O componente chama Response.Write internamente para escrever directamente para a página. Normalmente a referência de objecto de resposta é obtida a partir do ObjectContext através da chamada GetObjectContext.Item("Response").
  2. Determine se a saída HTML inclui dados da aplicação. Esses dados podem provenientes de uma variedade de origens, tais como bases de dados, ficheiros, cookies, outras variáveis de objecto e assim sucessivamente.
  3. Determine uma solução adequada. Ter encontrado ASP ou componente de código que gera HTML utilizando alguns entrada, tem de determinar uma solução adequada para a aplicação específica. Soluções incluem (mas não estão limitadas a) validar/filtrar dados inválidos ou codificação.

Directrizes para formatação

Estas directrizes ajudará a identificar onde enfrentam formatação correctamente.

Quando escrever informações para uma página, os dados de aplicação específica têm de ser HTMLEncoded. Não é importante para que HTMLEncode códigos que se destinam a acabar na página HTML. Por conseguinte, se as funções do componente HTML, o HTMLEncode tem de ser efectuado dentro-los.

Para HTMLEncode uma cadeia de um componente, tem uma referência para o objecto de servidor ASP. Pode obter esta referência da colecção de MTS ObjectContext.Items:
sGoodHTML = GetObjectContext.Item("Server").HTMLEncode(sRawData) 
				
exemplo : Este código irá gerar linhas da tabela com valores provenientes de um conjunto de registos. Este código não codificar a saída:
Do While Not oRecordset.EOF
     sHTML = sHTML & "<TR>" 
     sHTML = sHTML & "<TD>" & oRecordset("FirstName") & "</TD>"
     sHTML = sHTML & "<TD>" & oRecordset("Address") & "</TD>"
     sHTML = sHTML & "</TR>" 
Loop
				
quando este código for resolvido, repare que os próprios valores HTMLEncoded e não a cadeia completa de HTML:
Dim oServer As ASPTypeLibrary.Server

Set oServer = GetObjectContext.Item("Server")

Do While Not oRecordset.EOF
     sHTML = sHTML & "<TR>" 
     sHTML = sHTML & "<TD>" & oServer.HTMLEncode( oRecordset("FirstName")) & "</TD>"
     sHTML = sHTML & "<TD>" & oServer.HTMLEncode( oRecordset("Address")) & "</TD>"
     sHTML = sHTML & "</TR>" 
Loop

Set oServer = Nothing
				
nota a utilização da referência de objecto intermédio oServer . Isto é incluído para tirar partido da ligação antecipada e para evitar a resolução pesquisa ObjectContext.Item sempre. Para declarar um objecto como ASPTypeLibrary.Server, tem de incluir uma referência para "Microsoft Active Server Pages Object Library."

Tenha tenha em consideração as seguintes directrizes:
  • Componentes de negócio não deverão chamar HTMLEncode (a menos que também são composição HTML). Esta é uma tarefa da camada de apresentação.
  • Normalmente, componentes utilizar HTMLEncode ou qualquer um dos objetos ASP devem executar fisicamente no mesmo computador como o Internet Information Server (IIS).
  • Soluções incluem (mas não estão limitadas a) a validação de parâmetros de entrada e formatação parâmetros de entrada.

Referências

Para mais informações, consulte o seguinte aviso a partir do computador emergência Response Team (CERT) informática da Universidade Carnegie Mellon:
http://www.cert.org/advisories/CA-2000-02.html
Para obter mais informações, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
252985Como evitar problemas de segurança scripts entre sites para aplicativos da Web
253120Como rever Visual InterDev gerado código para vulnerabilidade CSSI
253117Como impedir que o Internet Explorer e Outlook Express CSSI vulnerabilidade

Propriedades

Artigo: 253121 - Última revisão: 10 de fevereiro de 2014 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft Transaction Services 2.0
Palavras-chave: 
kbnosurvey kbarchive kbmt kbcssi kbhowto KB253121 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: 253121

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