Programové zjišťování problémů souvisejících s kanonikalizací pomocí technologie ASP.NET

Překlady článku Překlady článku
ID článku: 887459 - Produkty, které se vztahují k tomuto článku.

Zřeknutí se záruky

Informace poskytované v databázi Microsoft Knowledge Base jsou poskytovány „tak, jak jsou“, bez jakýchkoli záruk. Neuznáváme žádné záruky, výslovně uvedené či mlčky předpokládané, včetně záruk vztahujících se k obchodovatelnosti a vhodnosti pro určitý účel. Společnost Microsoft ani její dodavatelé nejsou v žádném případě zodpovědni za žádné škody, včetně přímých, nepřímých, náhodných či následných škod, ztráty zisku či zvláštních škod, a to ani v případě, že společnost Microsoft a její dodavatelé byli na možnost takových škod upozorněni. V některých zemích není dovoleno vyloučit nebo omezit odpovědnost za následné nebo nepřímé škody. Proto se výše uvedené omezení na vás nemusí vztahovat.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

ÚVOD

Článek popisuje, jak rozšířit zabezpečení aplikace ASP.NET a předejít tak běžným problémům souvisejícím s kanonikalizací.

Další informace

Co je kanonikalizace?

Kanonikalizace je proces určující, jak jsou různé formy názvů překládány na jediný standardní název. Tento jediný standardní název je označován také jako kanonický název. U určitého počítače mohou například názvy c:\dir\test.dat, test.dat a ..\..\test.dat odkazovat na stejný soubor. Kanonikalizace je proces, který mapuje tyto názvy na název podobný názvu c:\dir\test.dat.

Když je adresa URL přijata webovým serverem, server mapuje požadavek na systémovou cestu souboru, která určí odpověď. Rutina kanonikalizace používaná k mapování požadavku musí adresu URL správně analyzovat, aby nedošlo k obsluze nebo zpracování neočekávaného obsahu. Další informace o kanonikalizaci naleznete na následujícím webu společnosti Microsoft:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx
Je vhodné použít doporučené postupy, jelikož slouží k ochraně vašich aplikací. Další informace naleznete v následující sekci.

Rozšíření zabezpečení webových aplikací za účelem ochrany před problémy s kanonikalizací

Vývojáři aplikace ASP.NET mohou přidat více kontrolních mechanismů, které slouží k omezení problémů webových aplikací s kanonikalizací, a to přidáním procesu zpracování události Application_BeginRequest do souboru Global.asax uloženého v kořenovém adresáři webové aplikace. Tento proces zpracování události je spuštěn pro každý webový požadavek. K tomuto procesu zpracování události můžete přidat kód a chránit tak aplikaci před problémy s kanonikalizací.

Ukázka kódu

Na následujících ukázkách kódu je naznačen způsob přidání procesu zpracování události Application_BeginRequest do souboru Global.asax. Tento proces zpracování události ověřuje cestu a brání tak použití neplatných znaků a poškozených adres URL. Timto způsobem je možné se vyhnout běžným problémům s kanonikalizací.

Ukázka kódu souboru Global.asax (aplikace 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>

Ukázka kódu souboru Global.asax (jazyk 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>

Vlastnosti

ID článku: 887459 - Poslední aktualizace: 3. prosince 2007 - Revize: 2.5
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbsecurity kbtshoot KB887459

Dejte nám zpětnou vazbu

 

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