Módulo HTTP para verificar problemas de canonização com ASP.NET

Traduções deste artigo Traduções deste artigo
ID do artigo: 887289 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Para auxiliar os clientes na proteção de seus aplicativos ASP.NET, a Microsoft disponibilizou um módulo HTTP que implementa as melhores práticas de canonização. Para obter informações adicionais, clique no número abaixo para consultar o artigo na Base de Dados de Conhecimento da Microsoft:
887459 Procurar programaticamente por problemas de canonização com o ASP.NET
Para obter informações adicionais sobre como determinar a versão do ASP.NET, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
318785 Determinar se os service packs estão instalados no .NET Framework

Sintomas

Quando um sevidor da Web recebe um URL, ele mapeia a solicitação para um caminho de sistema de arquivo que determina a resposta. A rotina de canonização usada para mapear a solicitação deve analisar corretamente o URL para evitar o envio ou o processamento de conteúdo inesperado. Problemas de canonização que não são controlados podem levar a resultados inesperados. Para obter mais informações sobre canonização, visite o seguinte site da Microsoft (site em inglês):
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

Resolução

Microsoft.Web.ValidatePathModule.dll - Módulo HTTP

Informações sobre o download

O seguinte arquivo está disponível para download no Centro de Download da Microsoft (em inglês):

Recolher esta imagemExpandir esta imagem
Download
Baixe o pacote VPModule.msi agora.

Data de lançamento: 7 de outubro de 2004

Para obter informações adicionais sobre como baixar arquivos de Suporte da Microsoft, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
119591 Como obter arquivos de suporte da Microsoft nos Serviços online
A Microsoft verificou esse arquivo em busca de vírus. A Microsoft utilizou o mais recente software de detecção de vírus disponível na data em que o arquivo foi publicado. O arquivo está armazenado em servidores de segurança avançada que ajudam a evitar qualquer alteração não autorizada no arquivo.

Pré-requisitos

O arquivo VPModule.msi foi desenvolvido para Microsoft .NET Framework de 32 bits.

Antes de instalar esse arquivo, faça um backup de todas as instâncias do arquivo Machine.config de seu computador. Para criar um cópia de backup do arquivo Machine.config, execute estas etapas:
  1. Clique em Iniciar, em Executar, digite cmd e clique em OK.
  2. Localize cada versão do arquivo Machine.config. O(s) arquivo(s) Machine.config está(ão) localizado(s) na seguinte pasta, no qual <número da versão do framework> é a versão do Microsoft .NET Framework instalada:
    %windir%\Microsoft.NET\Framework\<número da versão do framework>\CONFIG
    Por exemplo, se o .NET Framework 1.1 estiver instalado na unidade C, digite o seguinte comando e pressione ENTER:
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Digite o seguinte comando para criar uma cópia de backup do arquivo Machine.config e pressione ENTER:
    copy machine.config machine.config.bak
Repita estas etapas para cada instância do .NET Framework instalada no seu sistema.

Informações sobre a instalação

A Microsoft lançou um pacote de instalação chamado VPModule.msi. O arquivo VPModule.msi instala o arquivo Microsoft.Web.ValidatePathModule.dll no seu sistema. A instalação atualiza o arquivo (ou os arquivos) Machine.config com uma nova entrada do módulo HTTP em todas as versões instaladas do .NET Framework.

Para usar o pacote de instalação, baixe o arquivo VPModule.msi, clique duas vezes no pacote para iniciar a instalação e siga as intruções de instalação.

Qual a função do VPModule.msi

O instalador extrai primeiro um arquivo chamado Microsoft.Web.ValidatePathModule.dll. Logo em seguida, atualiza todos os arquivos Machine.config existentes no sistema de modo que os arquivos possuam uma entrada semelhante à seguinte:
    <system.web>
        <httpModules>
            <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
        </httpModules>
    </system.web>
O instalador adiciona, então, o arquivo Microsoft.Web.ValidatePathModule.dll ao Cache global de conjuntos (GAC).

Para desenvolvedores que desejam entender o que o arquivo Microsoft.Web.ValidatePathModule.dll programaticamnte faz, o código fonte está disponível abaixo:
namespace Microsoft.Web {
    public class ValidatePathModule : IHttpModule {
        public ValidatePathModule() {
        }
        void IHttpModule.Init(HttpApplication app) {
            app.BeginRequest += new EventHandler(this.OnBeginRequest);
        }
        void IHttpModule.Dispose() {
        }
        void OnBeginRequest(Object source, EventArgs eventArgs) {
            HttpRequest request = (source as HttpApplication).Request;
            string physicalPath = request.PhysicalPath;
            if (request.Path.IndexOf('\\') >= 0 || Path.GetFullPath(physicalPath) != physicalPath) {
                throw new HttpException(404, "Not Found");
            }
        }
    }
}
Para obter informações sobre opções de linha de comando que podem ser usadas para instalar o módulo, visite o seguinte site da Microsoft (site em inglês):
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

Informações sobre a verificação da instalação

Quando o módulo é instalado corretamente, a seguinte chave do Registro existe:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
Observação Essa chave do Registro não existe no sistema se o módulo HTTP for instalado manualmente conforme descrito na seção "Informações sobre a instalação padrão". A opção /a apenas extrai arquivos. Ela não atualiza o Registro.

Informações sobre a remoção

Para remover essas alterações, execute o arquivo VPModule.msi e selecione a opção Remover. Alternativamente, use Adicionar ou remover programas no Painel de controle.

Informações sobre o modo autônomo

Use o seguinte comando para instalar essas alterações no modo autônomo:
msiexec /i vpmodule.msi /qb-
Use o seguinte comando para remover essas alterações no modo autônomo:
msiexec /x vpmodule.msi /qb-

Informações sobre a instalação padrão

Para instalar manualmente o módulo HTTP, execute estas etapas:
  1. Faça um backup do(s) arquivo(s) Machine.config. Para obter mais informaçõe sobre como fazer isso, consulte a seção "Pré-requisitos".
  2. Baixe o pacote. Para obter mais informaçõe sobre como fazer isso, consulte a seção "Informações sobre download".
  3. Use o seguinte comando para extrair o arquivo Microsoft.Web.ValidatePathModule.dll do arquivo VPModule.msi para um local de sua escolha:
    msiexec /a vpmodule.msi
  4. Use o seguinte comando para copiar o módulo ao GAC:
    gacutil -i microsoft.web.validatepathmodule.dll
    Observação O módulo é extraído para uma pasta chamada "Microsoft ValidatePath Module" que está no local especificado.
  5. Edite o(s) arquivo(s) Machine.config para adicionar a seguinte entrada à seção <httpModules>:
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
    

Problemas conhecidos

A seguir estão os problemas conhecidos:
  • O instalador verifica se o(s) arquivo(s) Machine.config estão atualizados corretamente com uma entrada <httpModule> para o arquivo Microsoft.Web.ValidatePathModule.dll. No entanto, sob determinadas circunstâncias, isso pode não impedir a ocorrência do comportamento.

    Esse comportamento pode ocorrer se um arquivo Web.config file existir e o arquivo Web.config apagar a lista definida no nível Machine.config. Por exemplo, uma entrada que se assemelha à seguinte em um arquivo Web.config pode causar esse comportamento:
    <httpModules>
        <clear/>
    </httpModules>
    
    Esta configuração impede a execução do módulo de atenuação neste aplicativo específico. Essa configuração ocorre normalmente quando um aplicativo não deseja usar os módulos HTTP definidos no nível Machine.config, mas deseja apagar a lista e define, então, uma nova lista específica ao aplicativo atual.
  • Se uma versão diferente do .NET Framework for instalada, será necessário desinstalar e reinstalar o arquivo VPModule.msi.
  • Para obter informações adicionais sobre problemas com o SQL Server Reporting Services e VPModule.msi, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
    887787 Mensagens de erro podem ser recebidas do Reporting Services após a instalação do módulo ASP.NET ValidatePath

Referências

Para obter informações adicionais, clique no número abaixo para consultar o artigo na Base de Dados de Conhecimento da Microsoft:
887405 Como usar o Windows Installer e a diretiva de grupo para implantar o VPModule.msi em um domínio do Active Directory
Para obter informações adicionais, clique no número abaixo para consultar o artigo na Base de Dados de Conhecimento da Microsoft:
887404 Como usar o Systems Management Server 2003 para implantar o módulo ValidatePath
Para obter informações adicionais, clique no número abaixo para consultar o artigo na Base de Dados de Conhecimento da Microsoft:
887290 Como usar o scanner de módulo ASP.NET ValidatePath (VPModuleScanner.js)
Para obter mais informações sobre estados da sessão, visite o seguinte site da Microsoft (em inglês):
http://msdn2.microsoft.com/en-us/library/87069683(vs.71).aspx

Propriedades

ID do artigo: 887289 - Última revisão: segunda-feira, 3 de dezembro de 2007 - Revisão: 3.8
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.0 Service Pack 1
  • Microsoft .NET Framework 1.0 Service Pack 2
  • Microsoft .NET Framework 1.0 Service Pack 3
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.1 Service Pack 1
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 2
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 1
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 2
Palavras-chave: 
kbsecurity kbtshoot KB887289

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