Módulo HTTP para verificar a existência de problemas relacionados com a forma canónica no ASP.NET

Traduções de Artigos Traduções de Artigos
Artigo: 887289 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Para ajudar os clientes a proteger as respectivas aplicações ASP.NET, a Microsoft disponibilizou um módulo HTTP que implementa os procedimentos recomendados de canonicidade. Este artigo poderá conter hiperligações para conteúdo em inglês (ainda não traduzido). Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
887459 Verificar a existência de problemas relacionados com a forma canónica no ASP.NET por programação
Para obter informações adicionais sobre como determinar a versão do ASP.NET, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
318785 Determine whether service packs are installed on the .NET Framework
Para obter mais informações sobre problemas relacionados com a forma canónica no ASP.NET, visite o seguinte Web site da Microsoft:
http://www.microsoft.com/portugal/seguranca/incidentes/aspnet.mspx

Sintomas

Quando um servidor da Web recebe um URL, mapeia o pedido para um caminho do sistema de ficheiros que determine a resposta. A rotina de colocação na forma canónica utilizada para mapear o pedido deve analisar correctamente o URL, de forma a evitar servir ou processar conteúdo inesperado. Problemas de canonicidade não tratados podem dar origem a resultados inesperados. Para obter mais informações sobre canonicidade, visite o seguinte Web site da Microsoft:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

Resolução

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

Informações de transferência

O ficheiro que se segue está disponível para transferência a partir do centro de transferências da Microsoft:

Reduzir esta imagemExpandir esta imagem
Transferir
Transferir o pacote VPModule.msi agora.

Data de edição: 7 de Outubro de 2004

Para obter informações adicionais sobre como transferir ficheiros de suporte da Microsoft, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
119591 Como obter ficheiros de suporte da Microsoft a partir de serviços online
A Microsoft procedeu à detecção de vírus neste ficheiro. A Microsoft utilizou o software de detecção de vírus mais actual, disponível na data de publicação do ficheiro. O ficheiro está armazenado em servidores com segurança melhorada, que ajudam a impedir quaisquer alterações não autorizadas ao ficheiro.

Pré-requisitos

O ficheiro VPModule.msi foi concebido para o Microsoft .NET Framework de 32 bits.

Antes de instalar o ficheiro VPModule.msi, crie uma cópia de segurança de todas as instâncias do ficheiro Machine.config existentes no computador. Para criar uma cópia de segurança do ficheiro Machine.config, siga estes passos:
  1. Clique em Iniciar, clique em Executar, escreva cmd e clique em OK.
  2. Localize todas as versões do ficheiro Machine.config. O ficheiro (ou ficheiros) Machine.config está localizado na seguinte pasta, em que <versão do framework> é a versão do Microsoft .NET Framework instalada:
    %windir%\Microsoft.NET\Framework\<versão do framework>\CONFIG
    Por exemplo, se o .NET Framework 1.1 estiver instalado na unidade C, escreva o seguinte comando e prima ENTER:
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Escreva o seguinte comando para criar uma cópia de segurança do ficheiro Machine.config e prima ENTER:
    copy machine.config machine.config.bak
Repita estes passos para cada instância do .NET Framework instalada no seu sistema.

Informações de instalação

A Microsoft disponibilizou um pacote de instalação denominado VPModule.msi. O ficheiro VPModule.msi instala o ficheiro Microsoft.Web.ValidatePathModule.dll no sistema. A instalação actualiza o ficheiro ou ficheiros Machine.config com uma nova entrada de módulo HTTP em todas as versões instaladas do .NET Framework.

Para utilizar o pacote de instalação, transfira o ficheiro VPModule.msi, faça duplo clique no pacote para iniciar a instalação e siga as instruções de instalação.

Quais as acções efectuadas por VPModule.msi

O programa de instalação extrai um ficheiro denominado Microsoft.Web.ValidatePathModule.dll. Em seguida, actualiza todos os ficheiros Machine.config existentes no sistema, de forma a que os ficheiros tenham 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>
Depois, o programa de instalação adiciona o ficheiro Microsoft.Web.ValidatePathModule.dll à cache de assemblagem global (GAC, Global Assembly Cache).

O código fonte está disponível abaixo, para programadores que queiram compreender o que o ficheiro Microsoft.Web.ValidatePathModule.dll faz por programação:
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 parâmetros da linha de comandos que pode utilizar para instalar este módulo, visite o seguinte Web site da Microsoft:
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

Informações para verificação da instalação

Quando o módulo estiver instalado correctamente, existirá a seguinte chave de registo:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
Nota: esta chave de registo não existe no sistema se instalar manualmente o módulo HTTP, como descrito na secção "Informações para instalação personalizada". A opção /a apenas extrai os ficheiros. Não actualiza o registo.

Informações de remoção

Para remover estas alterações, execute o ficheiro VPModule.msi e seleccione a opção Remove. Em alternativa, utilize Adicionar/remover programas no Painel de controlo.

Informações sobre o modo automático

Utilize o seguinte comando para instalar estas alterações em modo automático:
msiexec /i vpmodule.msi /qb-
Utilize o seguinte comando para remover estas alterações em modo automático:
msiexec /x vpmodule.msi /qb-

Informações para instalação personalizada

Para instalar manualmente o módulo HTTP, siga estes passos:
  1. Crie cópias de segurança do ficheiro ou ficheiros Machine.config. Para obter mais informações sobre como fazê-lo, consulte a secção "Pré-requisitos".
  2. Transfira o pacote. Para obter mais informações sobre como fazê-lo, consulte a secção "Informações de transferência".
  3. Utilize o seguinte comando para extrair o ficheiro Microsoft.Web.ValidatePathModule.dll do ficheiro VPModule.msi para uma localização à sua escolha:
    msiexec /a vpmodule.msi
  4. Utilize o seguinte comando para copiar o módulo para a GAC:
    gacutil -i microsoft.web.validatepathmodule.dll
    Nota: o módulo é extraído para uma pasta denominada "Microsoft ValidatePath Module", na localização que especificou.
  5. Edite o ficheiro ou ficheiros Machine.config para adicionar a seguinte entrada à secção <httpModules>:
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
    

Problemas conhecidos

Seguem-se problemas conhecidos:
  • O programa de instalação certifica-se de que o ficheiro ou ficheiros Machine.config são actualizados, com êxito, com uma entrada <httpModule> para o ficheiro Microsoft.Web.ValidatePathModule.dll. No entanto, em determinadas circunstâncias, isto poderá não impedir que o comportamento descrito ocorra.

    Este comportamento pode ocorrer se existir um ficheiro Web.config e este limpar a lista definida ao nível do Machine.config. Por exemplo, uma entrada semelhante à seguinte num ficheiro Web.config poderá provocar este comportamento:
    <httpModules>
        <clear/>
    </httpModules>
    
    Esta configuração impede que o módulo atenuante seja executado nesta aplicação específica. Esta configuração ocorre normalmente quando uma aplicação não pretende utilizar módulos HTTP definidos ao nível do Machine.config mas, em vez disso, pretende limpar a lista e, em seguida, definir uma nova lista específica da aplicação actual.
  • Se instalar uma versão diferente do .NET Framework, terá de desinstalar e reinstalar o ficheiro VPModule.msi.
  • Para obter informações adicionais sobre problemas relacionados com os Reporting Services do SQL Server, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
    887787 You may receive error messages from Reporting Services after you install the ASP.NET ValidatePath Module

Referências

Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
887405 How to use Windows Installer and Group Policy to deploy the VPModule.msi in an Active Directory domain
Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
887404 How to use Systems Management Server 2003 to deploy the ValidatePath module
Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
887290 Como utilizar o detector de módulos ValidatePath do ASP.NET (VPModuleScanner.js)
Para obter mais informações sobre estados de sessão, visite o seguinte Web site da Microsoft:
http://msdn2.microsoft.com/en-us/library/87069683(vs.71).aspx

Propriedades

Artigo: 887289 - Última revisão: 3 de dezembro de 2007 - Revisão: 3.8
A informação contida neste artigo aplica-se a:
  • 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
  • Microsoft ASP.NET 1.0
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