Jak programowo testować problemy związane z kanonizacją, występujące w programie ASP.NET

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 887459 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.

Zastrzeżenie

Informacje w bazie wiedzy Microsoft Knowledge Base są dostarczane „tak jak są” bez jakiejkolwiek gwarancji. Firma Microsoft odrzuca wszelkie gwarancje, wyraźne i dorozumiane, w tym gwarancje dotyczące wartości handlowej i przydatności do określonego celu. Firma Microsoft Corporation ani jej dostawcy w żadnym wypadku nie ponoszą odpowiedzialności za jakiekolwiek szkody, w tym bezpośrednie, pośrednie, przypadkowe, wynikowe, utratę zysków handlowych lub szkody specjalne, nawet jeżeli firmę Microsoft Corporation lub jej dostawców powiadomiono o możliwości zaistnienia takich szkód. W niektórych stanach wyłączenie lub ograniczenie odpowiedzialności za straty wynikowe lub przypadkowe, a więc i powyższe ograniczenia, nie mają zastosowania..
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

WPROWADZENIE

W tym artykule opisano sposób dodawania zabezpieczeń do aplikacji ASP.NET w celu ułatwienia ochrony przed często występującymi problemami związanymi z kanonizacją.

Więcej informacji

Co to jest kanonizacja?

Kanonizacja to proces, podczas którego różne ekwiwalenty nazwy są rozpoznawane jako pojedyncza nazwa standardowa. Pojedyncza nazwa standardowa jest również określana jako kanoniczna. Na przykład na określonym komputerze nazwy c:\dir\test.dat, test.dat i and ..\..\test.dat mogą dotyczyć tego samego pliku. W procesie kanonizacji nazwy te są mapowane na nazwę podobną do następującej: c:\dir\test.dat.

Po otrzymaniu adresu URL serwer sieci Web mapuje żądanie na ścieżkę w systemie plików, określającą odpowiedź. Procedura kanonizacji używana do mapowania żądania musi poprawnie analizować adres URL, aby uniknąć obsługiwania lub przetwarzania nieoczekiwanej zawartości. Aby uzyskać więcej informacji dotyczących kanonizacji, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx
Zalecane jest uwzględnienie najważniejszych wskazówek ułatwiających ochronę aplikacji. Aby uzyskać dodatkowe informacje, zobacz następną sekcję.

Dodawanie zabezpieczeń kanonizacyjnych do aplikacji sieci Web

Deweloperzy korzystający z programu Microsoft ASP.NET mogą dodawać do aplikacji sieci Web zabezpieczenia ułatwiające eliminację problemów związanych z kanonizacją, dodając program obsługi zdarzeń Application_BeginRequest w pliku Global.asax przechowywanym w katalogu głównym aplikacji sieci Web. Ten program obsługi zdarzeń jest wykonywany dla każdego żądania sieci Web. Można dodać kod źródłowy do tego programu obsługi zdarzeń, aby ułatwić ochronę przed problemami związanymi z kanonizacją.

Przykład kodu źródłowego

Następujące przykłady kodu źródłowego demonstrują sposób dodawania programu obsługi zdarzeń Application_BeginRequest do pliku Global.asax. Ten program obsługi zdarzeń ułatwia zapobieganie przetwarzaniu nieprawidłowych znaków i nieprawidłowo uformowanych adresów URL dzięki weryfikacji ścieżek. Można więc uniknąć często występujących problemów związanych z kanonizacją.

Przykład kodu źródłowego 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>

Przykład kodu źródłowego pliku 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>

Właściwości

Numer ID artykułu: 887459 - Ostatnia weryfikacja: 3 grudnia 2007 - Weryfikacja: 2.8
Informacje zawarte w tym artykule dotyczą:
  • 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
  • Microsoft ASP.NET 1.0
Słowa kluczowe: 
kbsecurity kbtshoot KB887459

Przekaż opinię

 

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