Como revisar o código ASP/MTS para CSSI vulnerabilidade

Traduções deste artigo Traduções deste artigo
ID do artigo: 253121 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Sumário

Este artigo descreve como identificar e corrigir aplicativos de Microsoft Transaction Server/Active Server Pages (ASP) são suscetíveis a cross-site script problemas de segurança (CSSI). Única entrada que não corretamente é validada ou formatada torna seu aplicativo vulnerável a ataques.

Mais Informações

Problemas CSSI dispostos na maneira como um aplicativo manipula a validação de dados e formatação, para melhor é realizado da camada de apresentação.

Essa camada geralmente consistirá de páginas ASP e ocasionalmente pode incluir alguns componentes que ajudam no processamento de HTML para a página ASP para exibir.

No último caso é importante observar que embora o aplicativo deve executar as mesmas operações para proteger próprio de CSSI como um aplicativo somente ASP, sua implementação física fará com que parte do código Validando/formatação para ser executado em páginas ASP e alguns no componente. Para obter informações detalhadas sobre CSSI e ASP, consulte o seguinte artigo:
253119Como revisar o código ASP para CSSI vulnerabilidade
As etapas a seguir ajudarão você a identificar e corrigir aplicativos ASP suscetíveis a CSSI:
  1. Procure ASP ou componente de código que gera HTML a ser exibido. Há dois cenários típicos:
    • O componente cria e retorna uma seqüência HTML que o ASP irá escrever diretamente para a resposta.
    • O componente chama Response.write internamente para escrever diretamente para a página. Geralmente a referência de objeto de resposta é obtida da ObjectContext chamando GetObjectContext.Item("Response").
  2. Determine se a saída HTML inclui dados de aplicativo. Esses dados podem vir de uma variedade de fontes, como bancos de dados, arquivos, cookies, outras variáveis de objeto e assim por diante.
  3. Determine uma solução apropriada. Ter encontrado ASP ou componente de código que gera HTML usando alguns entrada, você deve determinar uma solução apropriada para seu aplicativo específico. Soluções incluem (mas não limitadas a) Validando/filtragem de dados inválidos ou codificá-lo.

Diretrizes para formatação

Essas diretrizes ajudará você a identificar onde lidar com formatação adequadamente.

Ao gravar informações em uma página, os dados de aplicativo específico devem estar HTMLEncoded. Não é importante para que HtmlEncode marcas que pretende terminar na página HTML. Portanto, se suas funções de componente retornam HTML, o HTMLEncode precisa ser feito dentro-los.

Para HTMLEncode uma seqüência de caracteres de um componente, você precisa de uma referência ao objeto servidor ASP. Você pode obter essa referência da coleção MTS ObjectContext.Items:
sGoodHTML = GetObjectContext.Item("Server").HTMLEncode(sRawData) 
				
exemplo : este código irá gerar linhas da tabela com valores extraídos de um conjunto de registros. Esse código não codifica 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 esse código é fixo, observe que os próprios valores são HTMLEncoded, em vez da cadeia de caracteres inteira do 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
				
Observação o uso de referência de objeto intermediário oServer . Isso está incluído para aproveitar a vinculação antecipada e evitar resolver pesquisa ObjectContext.Item sempre. Para declarar um objeto como ASPTypeLibrary.Server, você deve incluir uma referência ao "Microsoft Active Server Pages Object Library".

Leve em conta as seguintes diretrizes:
  • Componentes de negócios não devem chamar HTMLEncode (a menos que eles também são processamento HTML). Essa é uma tarefa da camada de apresentação.
  • Geralmente, componentes com HTMLEncode ou qualquer um dos objetos ASP devem executar fisicamente no computador mesmo como o Internet Information Server (IIS).
  • Soluções incluem (mas não limitadas a) validar parâmetros de entrada e formatação parâmetros de entrada.

Referências

Para obter mais informações, consulte o seguinte comunicado do computador CERT Emergency Response Team () na Carnegie Mellon University:
http://www.cert.org/advisories/CA-2000-02.html
Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
252985Como evitar problemas de segurança script entre sites para aplicativos da Web
253120Como revisar Visual InterDev gerado código para CSSI vulnerabilidade
253117Como evitar a vulnerabilidade do Internet Explorer e Outlook Express CSSI

Propriedades

ID do artigo: 253121 - Última revisão: domingo, 20 de outubro de 2013 - 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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