Slik foretar du en programmatisk kontroll av kanoniseringsproblemer med ASP.NET

Artikkeloversettelser Artikkeloversettelser
Artikkel-ID: 887459 - Vis produkter som denne artikkelen gjelder for.

Ansvarsfraskrivelse

Informasjonen i Microsoft Knowledge Base leveres som den er, uten noen form for garanti. Vi fraskriver oss alle direkte og indirekte garantier, inkludert garantier om salgbarhet og anvendelighet for særskilte formål. Microsoft eller Microsofts leverandører fraskriver seg ethvert erstatningsansvar for skader, herunder erstatning for tap av fortjeneste, forretningsavbrudd, tap av forretningsinformasjon eller andre økonomiske tap, også i tilfeller der Microsoft er underrettet om muligheten for slike skader. Enkelte jurisdiksjoner tillater ikke fraskrivelse eller begrensning av ansvar for følgeskade eller tilfeldig skade. Det kan derfor hende at ovennevnte begrensning ikke gjelder.
Vis alt | Skjul alt

På denne siden

INNLEDNING

Denne artikkelen beskriver hvordan du beskytter et ASP.NET-program slik at du kan bidra til å unngå vanlige kanoniseringsproblemer.

Mer informasjon

Hva er kanonisering?

Kanonisering er prosessen som bestemmer hvordan flere like former av et navn sammenføyes til ett standardnavn. Standardnavnet er også kjent som det kanoniske navnet. På en bestemt datamaskin kan for eksempel navnene c:\dir\test.dat, test.dat og ..\..\test.dat alle referere til den samme filen. Kanonisering er prosessen som tilordner slike navn til et navn som tilsvarer c:\dir\test.dat.

Når en webserver mottar en URL-adresse, tilordner serveren forespørselen til en filsystembane som bestemmer svaret. Kanoniseringsrutinen som brukes til å tilordne forespørselen, må analysere URL-adressen korrekt for å unngå å svare med eller behandle uventet innhold. Hvis du vil ha mer informasjon, går du til følgende Microsoft-webområde:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx
Vi anbefaler at du bruker gode rutiner for å beskytte programmene. Du finner mer informasjon i delen nedenfor.

Legge til ekstra kanoniseringsbeskyttelse i webprogrammet

Microsoft ASP.NET-utviklere kan legge til flere kontroller for å redusere kanoniseringsproblemer for webprogrammer ved å legge til hendelseshåndtereren Application_BeginRequest i filen Global.asax som ligger i rotmappen for webprogrammet. Denne hendelsesbehandleren utføres for hver webforespørsel. Du kan legge til kode i denne hendelseshandleren for å hjelpe til med å beskytte mot kanoniseringsproblemer.

Kodeeksempel

Følgende kodeeksempler viser hvordan du legger til hendelsesbehandleren Application_BeginRequest i en Global.asax-fil. Denne hendelsesbehandleren hjelper til med å forhindre ugyldige tegn og feilformede URL-adresser ved å kontrollere banen. Du kan derfor unngå vanlige kanoniseringsproblemer.

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

Egenskaper

Artikkel-ID: 887459 - Forrige gjennomgang: 3. desember 2007 - Gjennomgang: 2.6
Informasjonen i denne artikkelen gjelder:
  • 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økkelord: 
kbsecurity kbtshoot KB887459

Gi tilbakemelding

 

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