El módulo HTTP comprueba la existencia de problemas de creación de nombres canónicos con ASP.NET

Seleccione idioma Seleccione idioma
Id. de artículo: 887289 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Para ayudar a los usuarios a proteger sus aplicaciones ASP.NET, Microsoft ha creado un módulo HTTP que implementa las prácticas recomendadas de la creación de nombres canónicos. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
887459 Comprobar mediante programación la existencia de problemas de creación de nombres canónicos con ASP.NET
Para obtener información adicional acerca de cómo averiguar la versión de ASP.NET, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
318785 Determinar si hay Service Pack instalados en .NET Framework

Síntomas

Cuando un servidor Web recibe una dirección URL, aquél asigna la solicitud a una ruta del sistema de archivos que determina la respuesta. La rutina de creación de nombres canónicos que se usa para asignar la solicitud debe analizar correctamente la dirección URL para no servir ni procesar contenidos no esperados. Los problemas de nombres canónicos no tratados pueden producir resultados inesperados. Para obtener más información acerca de la creación de nombres canónicos, visite el siguiente sitio Web de Microsoft:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

Solución

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

Información de descarga

El archivo siguiente se puede descargar desde el Centro de descarga de Microsoft:

Contraer esta imagenAmpliar esta imagen
Descargar
Descargue ahora el paquete VPModule.msi.

Fecha de publicación: 7 de octubre de 2004

Para obtener información adicional acerca de cómo descargar los archivos de soporte técnico de Microsoft, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
119591 Cómo obtener archivos de soporte técnico de Microsoft desde los servicios en línea
Microsoft exploró este archivo en busca de virus. Microsoft utilizó el software de detección de virus más reciente disponible en la fecha de publicación del archivo. Asimismo, el archivo se almacenó en servidores seguros que ayudan a impedir la realización de cambios no autorizados.

Requisitos previos

El archivo VPModule.msi se diseñó para Microsoft .NET Framework.

Antes de instalar el archivo VPModule.msi, haga copia de seguridad de todas las instancias del archivo Machine.config que hay en su equipo. Para crear una copia de seguridad del archivo Machine.config, siga estos pasos:
  1. Haga clic en Inicio y en Ejecutar, escriba cmd y haga clic en Aceptar.
  2. Busque todas las versiones del archivo Machine.config. El archivo o archivos Machine.config están en la carpeta siguiente, donde <número de versión> es la versión de Microsoft .NET Framework que tiene instalada:
    %windir%\Microsoft.NET\Framework\<número de versión>\CONFIG
    Por ejemplo, si en la unidad C tiene instalado .NET Framework 1.1, escriba el comando siguiente y presione Entrar:
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Escriba el comando siguiente para crear una copia de seguridad del archivo Machine.config y presione Entrar:
    copy machine.config machine.config.bak
Repita estos pasos por cada instancia de .NET Framework instalada en el sistema.

Información de la instalación

Microsoft ha publicado un paquete de instalación llamado VPModule.msi. El archivo VPModule.msi instala el archivo Microsoft.Web.ValidatePathModule.dll en el sistema. La instalación actualiza el archivo o archivos Machine.config con una nueva entrada del módulo HTTP en todas las versiones instaladas de .NET Framework.

Para usar el paquete de instalación, descargue el archivo VPModule.msi, haga doble clic en el paquete para empezar la instalación y siga las instrucciones de instalación.

Lo que hace el módulo VPModule.msi

El programa de instalación extrae primero un archivo llamado Microsoft.Web.ValidatePathModule.dll. Después, actualiza todos los archivos Machine.config que existe en el sistema, para que los archivos tengan una entrada parecida a la siguiente:
    <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>
El programa de instalación agrega después el archivo Microsoft.Web.ValidatePathModule.dll a la caché de ensamblado global (GAC, Global Assembly Cache).

Para los desarrolladores que quieren entender lo que hace por programación el archivo Microsoft.Web.ValidatePathModule.dll, se incluye abajo el código fuente:
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 obtener información acerca de los modificadores de línea de comando que usa para instalar el módulo, visite el siguiente sitio Web de Microsoft:
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

Información de verificación de la instalación

Cuando el módulo se instala correctamente, existe la siguiente clave del Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
Nota
Esta clave del Registro no estará en el sistema si instaló manualmente el módulo HTTP tal como se describe en la sección "Información de la instalación personalizada". La opción /a sólo extrae los archivos. No actualiza el Registro.

Información acerca de cómo quitar

Para quitar estos cambios, ejecute el archivo VPModule.msi y seleccione la opción Quitar. En otro caso, en el Panel de control haga clic en Agregar o quitar programas.

Información de instalación desatendida

Use el comando siguiente para instalar estos cambios en el modo desatendido:
msiexec /i vpmodule.msi /qb-
Use el comando siguiente para quitar estos cambios en el modo desatendido:
msiexec /x vpmodule.msi /qb-

Información de la instalación personalizada

Para instalar manualmente el módulo HTTP, siga estos pasos:
  1. Haga copia de seguridad del archivo o archivos Machine.config. Para obtener más información acerca de cómo hacerlo, vea la sección "Requisitos previos".
  2. Descargue el paquete. Para obtener más información acerca de cómo hacerlo, vea la sección "Información de descarga".
  3. Use el comando siguiente para extraer el archivo Microsoft.Web.ValidatePathModule.dll file desde el archivo VPModule.msi a una ubicación de su elección:
    msiexec /a vpmodule.msi
  4. Use el comando siguiente para copiar el módulo en la memoria GAC:
    gacutil -i microsoft.web.validatepathmodule.dll
    Nota
    El módulo se extrajo a una carpeta denominada "Microsoft ValidatePath Module" y que está bajo la ubicación que especificó.
  5. Modifique el archivo o archivos Machine.config para agregar la entrada siguiente a la sección <httpModules>:
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
    

Problemas conocidos

Se conocen los problemas siguientes:
  • El programa de instalador se asegura de que el archivo o archivos Machine.config se actualizaron correctamente con una entrada <httpModule> para el archivo Microsoft.Web.ValidatePathModule.dll. Sin embargo, en determinadas circunstancias es posible que esto no evite que se produzca el comportamiento descrito.

    Este comportamiento se podría producir si existe un archivo Web.config que elimina la lista definida en el nivel de Machine.config. Por ejemplo, podría causar este comportamiento una entrada que se asemeje a la siguiente en un archivo Web.config.
    <httpModules>
        <clear/>
    </httpModules>
    
    Esta configuración impide que el módulo de mitigación se ejecute en esta aplicación particular. Esta configuración se suele producir cuando una aplicación no quiere usar los módulos HTTP que se definen en el nivel de Machine.config, pero quiere eliminar la lista y definir una lista nueva que sea específica de la aplicación actual.
  • Si instala una versión diferente de .NET Framework, debe desinstalar y volver a instalar el archivo VPModule.msi.
  • Para obtener información adicional acerca de los problemas con SQL Server Reporting Services y VPModule.ms, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    887787 Puede recibir mensajes de error de Reporting Services después de instalar el módulo ValidatePath de ASP.NET

Referencias

Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
887405 Cómo usar Windows Installer y la directiva de grupo para distribuir VPModule.msi en un dominio de Active Directory
Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
887404 Cómo usar Systems Management Server 2003 para distribuir el módulo ValidatePath
Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
887290 Cómo usar el escáner del módulo ValidatePath de ASP.NET (VPModuleScanner.js)
Para obtener más información acerca de los estados de la sesión, visite el siguiente sitio Web de Microsoft:
http://msdn2.microsoft.com/en-us/library/87069683(vs.71).aspx

Propiedades

Id. de artículo: 887289 - Última revisión: lunes, 3 de diciembre de 2007 - Versión: 3.8
La información de este artículo se refiere 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
Palabras clave: 
kbsecurity kbtshoot KB887289

Enviar comentarios

 

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