Modulo HTTP per il controllo dei problemi di rappresentazione canonica di ASP.NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 887289 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Per facilitare la protezione delle applicazioni ASP.NET, Microsoft ha reso disponibile un modulo HTTP che consente di implementare metodologie ottimali di rappresentazione canonica. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
887459 Controllo a livello di programmazione dei problemi di rappresentazione canonica di ASP.NET
Per ulteriori informazioni su come determinare la versione di ASP.NET in uso, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito (il contenuto potrebbe essere in inglese):
318785 Verifica dell'installazione dei service pack in .NET Framework
Per ulteriori informazioni sui problemi di rappresentazione canonica in ASP.NET, visitare il seguente sito Web Microsoft:
http://www.microsoft.com/italy/security/incident/aspnet.mspx

Sintomi

Quando un server Web riceve un URL, la richiesta viene associata dal server a un percorso nel file system che determina la risposta. La routine di rappresentazione canonica utilizzata per l'associazione della richiesta deve effettuare un'analisi corretta dell'URL per evitare di presentare o elaborare contenuti imprevisti. I problemi di rappresentazione canonica non gestiti possono comportare risultati imprevisti. Per ulteriori informazioni sulla rappresentazione canonica, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

Risoluzione

Microsoft.Web.ValidatePathModule.dll - Modulo HTTP

Informazioni sul download

Il seguente file è disponibile per il download dall'Area download Microsoft (informazioni in lingua inglese):

Download del pacchetto VPModule.msi

Data di rilascio: 7 ottobre 2004

Per ulteriori informazioni sul download di file di supporto Microsoft, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
119591 Come ottenere file di supporto Microsoft dai servizi online
Il file è stato controllato e non contiene virus. Microsoft ha utilizzato il software antivirus più recente disponibile al momento della data di pubblicazione del file. Il file viene salvato su server con un livello di protezione avanzata che impedisce modifiche non autorizzate.

Prerequisiti

Il file VPModule.msi è stato progettato per la versione a 32 bit di Microsoft .NET Framework.

Prima di installare il file VPModule.msi, effettuare il backup di tutte le istanze del file Machine.config presenti nel computer. Per creare una copia di backup del file Machine.config, attenersi alla seguente procedura:
  1. Fare clic sul pulsante Start, scegliere Esegui, digitare cmd, quindi scegliere OK.
  2. Individuare tutte le versioni del file Machine.config che si trovano nella seguente cartella, dove <numero di versione di framework> corrisponde alla versione installata di Microsoft .NET Framework:
    %windir%\Microsoft.NET\Framework\<numero versione framework>\CONFIG
    Ad esempio, se .NET Framework 1.1 è installato nell'unità C, digitare il seguente comando, quindi premere INVIO:
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Digitare il seguente comando per creare una copia di backup del file Machine.config, quindi premere INVIO:
    copy machine.config machine.config.bak
Ripetere questi passaggi per ogni istanza di .NET Framework installata nel sistema.

Informazioni sull'installazione

Microsoft ha rilasciato un pacchetto di installazione denominato VPModule.msi tramite il quale viene installato nel sistema il file Microsoft.Web.ValidatePathModule.dll che aggiorna il file o i file Machine.config con una nuova voce del modulo HTTP per tutte le versioni installate di .NET Framework.

Per utilizzare il pacchetto di installazione, scaricare il file VPModule.msi, fare doppio clic sul pacchetto per iniziare l'installazione e seguire le istruzioni visualizzate.

Funzionamento di VPModule.msi

Viene prima di tutto estratto un file denominato Microsoft.Web.ValidatePathModule.dll, quindi vengono aggiornati tutti i file Machine.config esistenti nel sistema aggiungendo a ogni file una voce analoga alla seguente:
    <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>
Il file Microsoft.Web.ValidatePathModule.dll viene quindi aggiunto automaticamente alla Cache assembly globale (GAC).

Per gli sviluppatori che desiderano verificare il funzionamento del file Microsoft.Web.ValidatePathModule.dll a livello di programmazione viene fornito di seguito il codice sorgente:
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");
            }
        }
    }
}
Per ulteriori informazioni sulle opzioni della riga di comando che è possibile utilizzare per installare il modulo, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

Informazioni sulla verifica dell'installazione

Se il modulo è stato installato correttamente, nel Registro di sistema è presente la chiave seguente:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
Nota La chiave di registro non è presente nel sistema se il modulo HTTP viene installato manualmente come descritto nella sezione "Informazioni sull'installazione personalizzata". L'opzione /a consente di estrarre solo i file, ma non di aggiornare il Registro di sistema.

Informazioni sulla rimozione

Per rimuovere le modifiche apportate, eseguire il file VPModule.msi e selezionare l'opzione Rimuovi. In alternativa, utilizzare Installazione applicazioni nel Pannello di controllo.

Informazioni sull'installazione automatica

Per installare le modifiche in modalità automatica, utilizzare il seguente comando:
msiexec /i vpmodule.msi /qb-
Per rimuovere le modifiche in modalità automatica, utilizzare il seguente comando:
msiexec /x vpmodule.msi /qb-

Informazioni sull'installazione personalizzata

Per installare manualmente il modulo HTTP, attenersi alla seguente procedura:
  1. Eseguire il backup del file o dei file Machine.config. Per ulteriori informazioni su tale operazione, vedere la sezione "Prerequisiti".
  2. Scaricare il pacchetto. Per ulteriori informazioni su tale operazione, vedere la sezione "Informazioni sul download".
  3. Utilizzare il seguente comando per estrarre il file Microsoft.Web.ValidatePathModule.dll dal file VPModule.msi e copiarlo nel percorso desiderato:
    msiexec /a vpmodule.msi
  4. Utilizzare il seguente comando per copiare il modulo nella GAC:
    gacutil -i microsoft.web.validatepathmodule.dll
    Nota Il modulo viene estratto in una cartella denominata "Microsoft ValidatePath Module" nel percorso specificato.
  5. Modificare il file o i file Machine.config aggiungendo la voce seguente alla sezione <httpModules>:
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
    

Problemi noti

Di seguito vengono descritti i problemi noti:
  • L'utilizzo del programma di installazione assicura che il file o i file Machine.config vengano aggiornati con la voce <httpModule> per il file Microsoft.Web.ValidatePathModule.dll. In alcune circostanze, tuttavia, è possibile che il problema descritto non venga eliminato.

    Il problema può verificarsi se è presente un file Web.config che causa l'eliminazione dell'elenco definito a livello di Machine.config. Ad esempio, una voce analoga a quella riportata di seguito contenuta in un file Web.config può essere la causa del problema:
    <httpModules>
        <clear/>
    </httpModules>
    
    Questa configurazione impedisce l'esecuzione del modulo di correzione in una particolare applicazione. Generalmente questo tipo di configurazione si verifica quando in un'applicazione non vengono utilizzati i moduli HTTP definiti a livello di Machine.config, ma al contrario l'elenco viene eliminato e ne viene definito uno nuovo specifico dell'applicazione corrente.
  • Se si installa una versione diversa di .NET Framework, sarà necessario rimuovere e reinstallare il file VPModule.msi.
  • Per ulteriori informazioni sui problemi relativi a SQL Server Reporting Services e VPModule.msi, fare clic sul numero dell'articolo della Knowledge Base riportato di seguito (il contenuto potrebbe essere in inglese):
    887787 Dopo l'installazione del modulo ValidatePath ASP.NET potrebbero essere visualizzati dei messaggi di errore di Reporting Services

Riferimenti

Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
887405 Utilizzo di Windows Installer e Criteri di gruppo per la distribuzione del file VPModule.msi in un dominio di Active Directory
Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
887404 Utilizzo di Systems Management Server 2003 per distribuire il modulo ValidatePath
Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
887290 Utilizzo del modulo ValidatePath di ASP.NET (VPModuleScanner.js)
Per ulteriori informazioni sugli stati delle sessioni, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/87069683(vs.71).aspx

Proprietà

Identificativo articolo: 887289 - Ultima modifica: lunedì 3 dicembre 2007 - Revisione: 3.8
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • 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
Chiavi: 
kbsecurity kbtshoot KB887289
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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