Kontroller programmerisk, om der er navnevedtagelsesproblemer med ASP.NET

Oversættelser af artikler Oversættelser af artikler
Artikel-id: 887459 - Få vist de produkter, som denne artikel refererer til.

Ansvarsfraskrivelse

De oplysninger, der findes i Microsoft Knowledge Base, gives "som de er og forefindes" uden garanti af nogen art. Desuden fraskriver Microsoft sig ethvert ansvar, både stiltiende og udtrykkeligt, herunder ansvar for salgbarhed eller egnethed til bestemte formål. Microsoft Corporation eller Microsofts leverandører er på ingen måde ansvarlige for skader af nogen art, herunder direkte, indirekte, hændelige skader eller følgeskader, driftstab eller særlige skader, selvom Microsoft Corporation eller Microsofts leverandører er blevet underrettet om muligheden for sådanne skader. I visse lande er det ikke tilladt at fraskrive sig eller begrænse ansvaret for følgeskader eller hændelige skader, hvorfor ovenstående begrænsning måske ikke gælder.
Udvid alle | Skjul alle

På denne side

INTRODUKTION

I denne artikel beskrives det, hvordan der kan føjes flere sikkerhedsforanstaltninger til et ASP.NET-program for bedre at beskytte mod almindelige navnevedtagelsesproblemer.

Yderligere Information

Hvad er navnevedtagelse?

Navnevedtagelse er den proces, hvor forskellige former for et navn kan fortolkes som et enkelt standardnavn. Det enkelte standardnavn kaldes også for det vedtagne navn. På en bestemt computer refererer navnene c:\dir\test.dat, test.dat og ..\..\test.dat f.eks. alle til den samme fil. Navnevedtagelse er den proces, hvor sådanne navne knyttes til et navn, der svarer til c:\dir\test.dat.

Når en URL-adresse modtages af en webserver, knytter serveren forespørgslen til en filsystemsti, der bestemmer svaret. Navnevedtagelsesrutinen, der bruges til at overføre forespørgslen, skal analysere URL-adressen korrekt for at undgå at levere eller behandle uventet indhold. Yderligere oplysninger om navnevedtagelse finder du på følgende Microsoft-websted:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx
Vi anbefaler, at du bruger den bedste fremgangsmåde for at beskytte dine programmer. Yderligere oplysninger finder du i nedenstående afsnit.

Tilføje yderligere navnevedtagelsesbekyttelse til dine webprogrammer

Microsoft ASP.NET-udviklere kan tilføje flere undersøgelser og således reducere navnevedtagelsesproblemer for et webprogram ved at tilføje en Application_BeginRequest-hændelseshandler til filen Global.asax, som gemmes i webprogrammets rodmappe. Denne hændelseshandler udfører hver webforespørgsel. Du kan føje kode til denne hændelseshandler for at beskytte mod navnevedtagelsesproblemer.

Kodeeksempel

Følgende kodeeksempel viser, hvordan en Application_BeginRequest-hændelseshandler føjes til filen Global.asax. Hændelseshandleren beskytter mod ugyldige tegn og forkert udformede URL-adresser ved at udføre stigodkendelser. Derfor kan du undgå navnevedtagelsesproblemer.

Global.asax-kodeeksempel (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>

Global.asax-kodeeksempel ( 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>

Egenskaber

Artikel-id: 887459 - Seneste redigering: 3. december 2007 - Redigering: 2.5
Oplysningerne i denne artikel gælder:
  • 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
Nøgleord: 
kbsecurity kbtshoot KB887459

Send feedback

 

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