Module HTTP pour contrôler les problèmes de canonicalisation avec ASP.NET

Traductions disponibles Traductions disponibles
Numéro d'article: 887289 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Pour aider ses clients à protéger leurs applications ASP.NET, Microsoft a publié un module HTTP qui implémente les méthodes recommandées de canonicalisation. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
887459 Contrôle par programme contre les problèmes de canonicalisation avec ASP.NET
Pour plus d'informations sur la façon de déterminer la version de ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
318785 Comment faire pour déterminer si des Service Packs sont installés sur .NET Framework
Pour plus d'informations sur les problèmes de canonicalisation dans ASP.NET, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://www.microsoft.com/france/securite/bulletins_securite/recapitulatifs/200410_windows.asp?SD=gn&LN=en-us&gssnb=1

Symptômes

Lorsqu'une URL est reçue par un serveur Web, le serveur mappe la demande à un chemin d'accès du système de fichiers qui détermine la réponse. La routine de canonicalisation qui est utilisée pour mapper la demande doit analyser correctement l'URL afin de ne pas fournir ou traiter du contenu inattendu. Les problèmes de canonicalisation non traités peuvent entraîner des résultats inattendus. Pour plus d'informations sur la canonicalisation, reportez-vous au site Web de Microsoft (en anglais) à l'adresse suivante :
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

Résolution

Microsoft.Web.ValidatePathModule.dll - module HTTP

Informations sur le téléchargement

Vous pouvez télécharger le fichier suivant à partir du Centre de téléchargement Microsoft :

Réduire cette imageAgrandir cette image
Téléchargement
Télécharger le package VPModule.msi maintenant.(en anglais)

Date de publication : 7 octobre 2004

Pour plus d'informations sur la façon de télécharger des fichiers du Support technique Microsoft, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
119591 Comment obtenir des fichiers de support technique Microsoft auprès des services en ligne
Microsoft a analysé ce fichier en vue de détecter la présence de virus. Microsoft a utilisé les logiciels de détection de virus les plus récents disponibles à la date de publication de ce fichier. Le fichier est conservé sur des serveurs sécurisés, empêchant toute modification non autorisée du fichier.

Conditions préalables

Le fichier VPModule.msi est conçu pour Microsoft .NET Framework en 32 bits.

Avant d'installer le fichier VPModule.msi, effectuez la sauvegarde de toutes les instances du fichier Machine.config sur votre ordinateur. Pour créer une copie de sauvegarde du fichier Machine.config, procédez comme suit :
  1. Cliquez sur Démarrer, sur Exécuter, tapez cmd, puis cliquez sur OK.
  2. Repérez toutes les versions du fichier Machine.config. Le ou les fichiers Machine.config sont situés dans le dossier suivant, où <numéro_version_framework> est la version de Microsoft .NET Framework installée :
    %windir%\Microsoft.NET\Framework\<numéro_version_framework>\CONFIG
    Par exemple, si la version 1.1 de .NET Framework est installée sur le lecteur C, tapez la commande suivante, puis appuyez sur ENTRÉE :
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Tapez la commande suivante pour créer une copie de sauvegarde du fichier Machine.config, puis appuyez sur ENTRÉE :
    copy machine.config machine.config.bak
Répétez ces étapes pour chaque instance de .NET Framework installée sur votre système.

Informations sur l'installation

Microsoft a publié un package d'installation nommé VPModule.msi. Le fichier VPModule.msi installe le fichier Microsoft.Web.ValidatePathModule.dll sur votre système. L'installation met à jour les fichiers Machine.config avec une nouvelle entrée de module HTTP sur toutes les versions de .NET Framework installées.

Pour utiliser le package d'installation, téléchargez le fichier VPModule.msi, double-cliquez sur le package pour démarrer l'installation, puis suivez les instructions d'installation.

Opérations effectuées par le fichier VPModule.msi

Le programme d'installation extrait tout d'abord un fichier nommé Microsoft.Web.ValidatePathModule.dll, puis il met à jour tous les fichiers Machine.config existant sur votre système en leur ajoutant une entrée semblable à ce qui suit :
    <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>
Le programme d'installation ajoute alors le fichier Microsoft.Web.ValidatePathModule.dll au cache d'assembly global (GAC, Global Assembly Cache).

Pour les développeurs qui souhaitent comprendre ce que le fichier Microsoft.Web.ValidatePathModule.dll effectue par programme, le code source est le suivant :
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");
            }
        }
    }
}
Pour obtenir des informations sur les commutateurs de ligne de commande que vous pouvez utiliser pour installer ce module, reportez-vous au site Web de Microsoft (en anglais) à l'adresse suivante :
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

Informations sur la vérification de l'installation

Lorsque le module est installé correctement, la clé de Registre suivante existe :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
Remarque Cette clé de Registre n'existe pas sur le système si vous installez manuellement le module HTTP comme décrit dans la section "Informations sur l'installation personnalisée". L'option /a extrait uniquement les fichiers. Elle ne met pas à jour le Registre.

Informations sur la suppression

Pour supprimer ces modifications, exécutez le fichier VPModule.msi et sélectionnez l'option Supprimer. Vous pouvez également utiliser l'outil Ajout/Suppression de programmes dans le Panneau de configuration.

Informations sur l'installation automatisée

Utilisez la commande suivante pour effectuer ces modifications en mode sans assistance :
msiexec /i vpmodule.msi /qb-
Utilisez la commande suivante pour supprimer ces modifications en mode sans assistance :
msiexec /x vpmodule.msi /qb-

Informations sur l'installation personnalisée

Pour installer manuellement le module HTTP, procédez comme suit :
  1. Sauvegardez votre ou vos fichiers Machine.config. Pour plus d'informations sur la façon de sauvegarder ces fichiers, reportez-vous à la section "Conditions préalables".
  2. Téléchargez le package. Pour plus d'informations, reportez-vous à la section "Informations sur le téléchargement".
  3. Exécutez la commande suivante pour extraire le fichier Microsoft.Web.ValidatePathModule.dll du fichier VPModule.msi vers un emplacement de votre choix :
    msiexec /a vpmodule.msi
  4. Exécutez la commande suivante pour copier le module vers le cache GAC :
    gacutil -i microsoft.web.validatepathmodule.dll
    Remarque Le module est extrait dans un dossier nommé "Microsoft ValidatePath Module" situé à l'emplacement spécifié.
  5. Modifiez les fichiers Machine.config en ajoutant l'entrée suivante à la section <httpModules> :
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
    

Problèmes connus

La liste suivante répertorie plusieurs problèmes connus :
  • Le programme d'installation vérifie que les fichiers Machine.config sont mis à jour avec une entrée <httpModule> pour le fichier Microsoft.Web.ValidatePathModule.dll. Toutefois, dans certaines circonstances, le problème décrit peut tout de même se produire.

    Ce problème peut se produire si un fichier Web.config existe et si ce fichier efface la liste définie au niveau de Machine.config. Par exemple, une entrée ressemblant à l'exemple ci-dessous dans un fichier Web.config peut provoquer ce problème :
    <httpModules>
        <clear/>
    </httpModules>
    
    Cette configuration empêche le module de mitigation de s'exécuter dans cette application spécifique. Cette configuration se produit normalement lorsqu'une application ne veut pas utiliser les modules HTTP définis au niveau de Machine.config mais veut effacer la liste et définir une nouvelle liste spécifique à l'application en cours.
  • Si vous installez une autre version de .NET Framework, vous devez désinstaller puis réinstaller le fichier VPModule.msi.
  • Pour plus d'informations sur les problèmes concernant SQL Server Reporting Services et VPModule.msi, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
    887787 Vous pouvez recevoir des messages d'erreur de Reporting Services après avoir installé le module ValidatePath de ASP.NET

Références

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
887405 Comment faire pour utiliser Windows Installer et une stratégie de groupe pour déployer VPModule.msi dans un domaine Active Directory
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
887404 Comment faire pour utiliser Systems Management Server 2003 pour déployer le module ValidatePath
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
887290 Comment faire pour utiliser le scanner de module ASP.NET ValidatePath (VPModuleScanner.js)
Pour plus d'informations sur les états de session, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconWorkingWithHttpApplicationInstances.asp

Propriétés

Numéro d'article: 887289 - Dernière mise à jour: lundi 3 décembre 2007 - Version: 3.6
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • 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
Mots-clés : 
kbsecurity kbtshoot KB887289
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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