Como rever Visual InterDev gerado código para a vulnerabilidade CSSI

Traduções de Artigos Traduções de Artigos
Artigo: 253120 - 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

O seguinte artigo descreve como identificar e correctas aplicações Visual InterDev que são susceptíveis a CSSI (problemas de entre scripts segurança relacionados com sites). Entrada única que não correctamente validada ou formatada torna a aplicação vulnerável a ataques.

Este artigo foca Visual InterDev estrutura hora controlos (DTC) e a biblioteca de script. Para obter orientações gerais sobre código ASP, consulte o seguinte artigo da base de dados de conhecimento:
253119Como rever ASP código para a vulnerabilidade para CSSI

Mais Informação

Visual InterDev DTCs apresentar desafios únicos aos programadores uma vez que algumas do código é gerado automaticamente. Não deve estar familiarizado com a implementação específica dos objectos de script que são gerados e quaisquer vulnerabilidades de-los ou como melhor endereçar-lhes um programador. Este artigo abrange todos os problemas conhecidos com DTCs vários e também abrange as opções possíveis para resolver as vulnerabilidades.

Os problemas dividem-se em duas categorias específicas:
  1. Os DTCs script para apresentar dados de uma base de dados e a base de dados contém dados de utilizadores.
  2. Os DTCs script para visualizar ou utilizar dados que foram submetidos a partir do cliente.
Em ambos os casos, uma validação adequada e codificação de valores de saída impede uma página baseada no DTC a ser utilizado um ataque CSSI.

Quando utilizar qualquer método de um DTC que obtém informações a partir do que DTC (como, por exemplo, .getCaption, .getText, .Value), quando o valor foi definido utilizando informações de utilizador fornecido, a cadeia resultante não é HTMLEncoded. Além disso, alguns DTCs podem estar vinculados a um campo de base de dados apresentam as informações não processadas da base de dados sem codificação. Como tal, deve HTMLEncode estes valores durante a apresentação num browser. Por exemplo:
Response.Write Server.HTMLEncode(Textbox1.value)
				
se os dados estiverem a ser utilizado como parte de um URL, deverá utilizar URLEncode em vez disso. Por exemplo:
Response.Write "<A HREF=http://webserver/webapplication/page.asp?data=" & Server.URLEncode(Textbox1.value) & ">Click here!</A>"
				
uma vez que existem várias formas para codificar entrusted caracteres de código de script, deve definir explicitamente o carácter definido para a página no browser compõe. Pode fazê-lo, inserindo um código <meta> de lado do cliente entre os códigos <head> do documento. Por exemplo:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset= ISO-LATIN-1">
				
Isto também pode ser efectuado a partir de ASP utilizando a propriedade Response.Charset:

<% Response.Charset= "ISO-LATIN-1" %>
				


Eis alguns exemplos comuns:

Reduzir esta tabelaExpandir esta tabela
ApresentarCódigo de exemplo
Valor de um botão de DTC
Response.Write Button1.Value()
Legenda do DTC caixa de verificação
Response.Write CheckBox1.getCaption()
Legenda de uma etiqueta do DTC
Response.Write Label1.getCaption()
Texto de uma caixa de listagem DTC
Response.Write Listbox1.getText()
Valor de um DTC OptionGroup
Response.Write OptionGroup1.getValue()
Valor do DTC caixa de texto
Response.Write Textbox1.Value()


Eis as soluções possíveis para estes exemplos:

Reduzir esta tabelaExpandir esta tabela
ApresentarCódigo de exemplo
Valor de um botão de DTC
Response.Write Server.HTMLEncode(Button1.Value())
Legenda do DTC caixa de verificação
Response.Write Server.HTMLEncode(CheckBox1.getCaption())
Legenda de uma etiqueta do DTC
Response.Write Server.HTMLEncode(Label1.getCaption())
Texto de uma caixa de listagem DTC
Response.Write Server.HTMLEncode(Listbox1.getText())
Valor de um DTC OptionGroup
Response.Write Server.HTMLEncode(OptionGroup1.getValue())
Valor do DTC caixa de texto
Response.Write Server.HTMLEncode(Textbox1.Value())


O DTC de grelha não não valores HTMLEncode obtidos numa base de dados. Se a base de dados demorar intervenção do utilizador (por exemplo, um livro de convidados), deverá HTMLEncode a saída. Pode fazê-lo fazendo clique sobre o separador dados na caixa de diálogo Propriedades da grelha e escrevendo:
=Server.HTMLEncode([fieldname])
				
onde NomeDoCampo é o nome de cada campo que é apresentado para essa coluna. A maior parte dos DTCs automaticamente HTMLEncode dados obtidos a partir de uma base de dados quando apresentar; outros não. Deverão tornar esses controlos utilizar de código adicional para garantir que saída para um cliente está correctamente HTMLEncoded.

NOTA: Os DTCs normalmente automaticamente implementam a lógica necessária para manter o respectivo estado durante o número de visitas ao servidor. No caso do DTC de caixa de texto por exemplo, quando a informação é redonda convertidas para o servidor, a página de biblioteca de script textbox.asp correctamente HTMLEncodes o conteúdo do texto caixa no processo de manter o estado do controlo.

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
Consulte os seguintes artigos da base de dados de conhecimento para obter mais informações:
252985Como impedir que os problemas relacionados com segurança de processamento de scripts de entre sites para aplicativos da Web
253119Como rever ASP código para a vulnerabilidade CSSI
253121Como rever MTS/ASP código para a vulnerabilidade CSSI
253117Problemas relacionados com segurança de processamento de scripts de sites impedir Internet Explorer e Outlook Express

Propriedades

Artigo: 253120 - Última revisão: 2 de fevereiro de 2014 - Revisão: 1.4
A informação contida neste artigo aplica-se a:
  • Microsoft Visual InterDev 6.0 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbcssi kbctrl kbhowto kbsecurity kbsecvulnerability KB253120 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: 253120

Submeter comentários

 

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