Controllo a livello di programmazione dei problemi di rappresentazione canonica di ASP.NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 887459 - Visualizza i prodotti a cui si riferisce l?articolo.

Declinazione di responsabilità

Le informazioni contenute nella Microsoft Knowledge Base vengono fornite "così come sono", senza garanzie di alcun tipo. Non viene riconosciuta alcuna garanzia, espressa o implicita, comprese, tra le altre, la garanzia di commerciabilità e idoneità per un fine particolare. Microsoft Corporation e i suoi fornitori non potranno in nessun caso essere ritenuti responsabili di danni di qualsiasi tipo, compresi danni diretti, indiretti, incidentali, consequenziali, mancato profitto o danni speciali, sebbene Microsoft Corporation o i suoi fornitori siano stati avvertiti della possibilità di tali danni. Alcuni Stati non ammettono l'esclusione o la limitazione di responsabilità per danni consequenziali o incidentali, quindi la limitazione di cui sopra potrebbe non applicarsi all'utente.
Espandi tutto | Chiudi tutto

In questa pagina

INTRODUZIONE

In questo articolo viene descritto come aggiungere misure di salvaguardia in un'applicazione ASP.NET per evitare i comuni problemi di rappresentazione canonica.

Informazioni

Che cos'è la rappresentazione canonica

Si tratta di un processo mediante il quale viene determinato come risolvere diverse forme equivalenti di un nome in un unico nome standard, detto anche nome canonico. Ad esempio, in un particolare computer i nomi c:\dir\test.dat, test.dat e ...\..\test.dat possono fare tutti riferimento allo stesso file. La rappresentazione canonica è il processo mediante il quale tali nomi vengono associati a un nome simile a c:\dir\test.dat.

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. 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
Per migliorare la protezione delle applicazioni create, è opportuno seguire le procedure consigliate. Per ulteriori informazioni, vedere la sezione seguente.

Aggiunta di misure di protezione all'applicazione Web per evitare problemi di rappresentazione canonica

Gli sviluppatori che utilizzano Microsoft ASP.NET possono implementare ulteriori controlli per evitare i problemi di rappresentazione canonica di un'applicazione Web aggiungendo un gestore eventi Application_BeginRequest nel file Global.asax, che si trova nella directory principale dell'applicazione Web. Il gestore eventi viene eseguito per ogni richiesta Web. È possibile aggiungere codice al gestore eventi per proteggere l'applicazione dai problemi di rappresentazione canonica.

Esempio di codice

Nei seguenti esempi di codice viene dimostrato come aggiungere un gestore eventi Application_BeginRequest a un file Global.asax. Il gestore eventi consente di migliorare la protezione da caratteri non validi e URL dannosi, eseguendo verifiche dei percorsi, in modo da evitare i comuni problemi di rappresentazione canonica.

Codice di esempio di Global.asax (Visual Basic .NET)

<script language="vb" runat="server">
Sub Application_BeginRequest(Sender as Object, E as EventArgs)
    If (Request.Path.IndexOf(chr(92)) >= 0 OR _
        System.IO.Path.GetFullPath(Request.PhysicalPath) <> Request.PhysicalPath) then
        Throw New HttpException(404, "Not Found")
    End If
End Sub
</script>

Codice di esempio di Global.asax ( C#)

<script language="C#" runat="server">
void Application_BeginRequest(object source, EventArgs e) {
    if (Request.Path.IndexOf('\\') >= 0 ||
        System.IO.Path.GetFullPath(Request.PhysicalPath) != Request.PhysicalPath) {
        throw new HttpException(404, "not found");
    }
}
</script>

Proprietà

Identificativo articolo: 887459 - Ultima modifica: lunedì 3 dicembre 2007 - Revisione: 2.6
Le informazioni in questo articolo si applicano 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
Chiavi: 
kbsecurity kbtshoot KB887459
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