ASP.NET-sovellusten kanonisen muunnon ongelmien etsiminen ohjelmallisesti

Artikkeleiden käännökset Artikkeleiden käännökset
Artikkelin tunnus: 887459 - Näytä tuotteet, joita tämä artikkeli koskee.

Ilmoitus

Microsoft Knowledge Base -tietokannan tiedot tarjotaan sellaisinaan ilman minkäänlaista takuuta. Microsoft ei anna minkäänlaista nimenomaisesti ilmaistua tai oletettua takuuta, mukaan lukien oletettua takuuta tuotteen soveltuvuudesta kaupankäynnin kohteeksi tai sopivuudesta johonkin tiettyyn tarkoitukseen. Missään tapauksessa Microsoft tai sen toimittajat eivät ole vastuussa mistään vahingoista (mukaan lukien suorat, epäsuorat, välilliset tai satunnaiset vahingot sekä liikevoiton menetys tai erityiset vahingot), vaikka Microsoftille tai sen toimittajille olisi ilmoitettu tällaisten vahinkojen mahdollisuudesta. Jotkin valtiot eivät salli välillisten tai satunnaisten vahinkojen vahingonkorvausvastuun poissulkemista tai rajoittamista, joten edellä mainitut rajoitukset eivät välttämättä ole voimassa.
Laajenna kaikki | Kutista kaikki

Tällä sivulla

ESITTELY

Tässä artikkelissa kuvataan, miten ASP.NET-sovellukseen lisätään varmistuksia, joiden avulla voidaan välttää yleisiä kanonisen muunnon ongelmia.

Enemmän tietoa

Mikä on kanoninen muunto?

Kanoninen muunto on prosessi, joka määrittää, miten nimen toisiaan vastaavat eri muodot ratkaistaan yksittäiseksi vakionimeksi. Yksittäistä vakionimeä kutsutaan myös kanoniseksi nimeksi. Tietyssä tietokoneessa esimerkiksi nimet c:\dir\test.dat, test.dat ja ..\..\test.dat saattavat viitata samaan tiedostoon. Kanoninen muunto on prosessi, jossa tällaiset nimet yhdistetään nimeen, joka on samankaltainen kuin c:\dir\test.dat.

Kun Web-palvelin vastaanottaa URL-osoitteen, palvelin yhdistää pyynnön tiedostojärjestelmäpolkuun, joka määrittää vastauksen. Pyynnön yhdistämiseen käytettävän rutiinin on jäsennettävä URL-osoite oikein, jotta odottamatonta sisältöä ei tarjota tai käsitellä. Lisätietoja kanonisesta muunnosta on seuraavassa Microsoftin Web-sivustossa:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx
Microsoft suosittelee, että varmistat sovelluksesi toiminnan noudattamalla parhaita käytäntöjä. Lisätietoja on seuraavassa osassa.

Kanonisen muunnon varmistusten lisääminen Web-sovellukseen

Microsoft ASP.NET -kehittäjät voivat lisätä tarkistuksia välttääkseen Web-sovelluksen kanonisen muunnon ongelmia lisäämällä Web-sovelluksen pääkansiossa olevaan Global.asax-tiedostoon Application_BeginRequest-tapahtumakäsittelyn. Tämä tapahtumakäsittely suoritetaan kullekin Web-pyynnölle. Voit lisätä tähän tapahtumakäsittelyyn koodia, joka auttaa suojautumaan kanonisen muunnon ongelmilta.

Mallikoodi

Seuraavat mallikoodit esittelevät, miten Global.asax-tiedostoon lisätään Application_BeginRequest-tapahtumakäsittely. Tämä tapahtumakäsittely auttaa estämään virheelliset merkit ja virheellisesti muodostetut URL-osoitteet polkutarkistusten suorittamisen avulla. Tämän avulla voidaan välttää yleisiä kanonisen muunnon ongelmia.

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

Ominaisuudet

Artikkelin tunnus: 887459 - Viimeisin tarkistus: 3. joulukuuta 2007 - Versio: 2.5
Artikkelin tiedot koskevat seuraavia tuotteita:
  • 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
Hakusanat: 
kbsecurity kbtshoot KB887459

Anna palautetta

 

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