Moduł protokołu HTTP wyszukuje problemy z zamianą na postać kanoniczną w środowisku ASP.NET

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 887289 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

Aby pomóc klientom w ochronie aplikacji programu ASP.NET, firma Microsoft udostępniła moduł protokołu HTTP, który implementuje najważniejsze wskazówki dotyczące zamiany na postać kanoniczną. Aby uzyskać dodatkowe informacje, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
887459 Jak programowo testować problemy związane z kanonizacją, występujące w programie ASP.NET
Aby uzyskać dodatkowe informacje o tym, jak określić wersję programu ASP.NET, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
318785 Określanie, czy zainstalowano dodatki Service Pack dla systemu .NET Framework

Symptomy

Gdy serwer sieci Web odbierze adres URL, mapuje żądanie na ścieżkę systemu plików, która determinuje odpowiedź. Procedura zamiany na postać kanoniczną, wykorzystywana do mapowania żądania, musi poprawnie analizować adres URL, aby nie dopuścić do przetwarzania lub obsługi nieoczekiwanej zawartości. Nierozwiązane problemy z zamianą na postać kanoniczną mogą powodować nieoczekiwane wyniki. Aby uzyskać więcej informacji na temat zamiany na postać kanoniczną, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

Rozwiązanie

Moduł protokołu HTTP Microsoft.Web.ValidatePathModule.dll

Informacje dotyczące pobierania

Następujący plik jest udostępniony do pobrania w witrynie Microsoft — Centrum pobierania:

Zwiń ten obrazekRozwiń ten obrazek
Pobierz
Pobierz pakiet VPModule.msi.

Data wydania: 7 października 2004

Aby uzyskać dodatkowe informacje dotyczące sposobu pobierania plików Pomocy technicznej firmy Microsoft, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
119591 Jak uzyskać pliki Pomocy technicznej Microsoft w usługach online
Firma Microsoft przeskanowała plik w poszukiwaniu wirusów. Firma Microsoft użyła najnowszego oprogramowania do wykrywania wirusów dostępnego w chwili opublikowania pliku. Plik jest przechowywany na serwerach z zaawansowanym poziomem zabezpieczeń, które ułatwiają ochronę przed wprowadzaniem nieautoryzowanych zmian w pliku.

Wymagania wstępne

Moduł VPModule.msi jest przeznaczony do użytku w 32-bitowym systemie Microsoft .NET Framework.

Przed zainstalowaniem pliku VPModule.msi wykonaj kopie zapasowe wszystkich wystąpień pliku Machine.config na komputerze. Aby wykonać kopię zapasową pliku Machine.config, wykonaj następujące kroki:
  1. Kliknij przycisk Start, kliknij polecenie Uruchom, wpisz polecenie cmd, a następnie kliknij przycisk OK.
  2. Zlokalizuj wszystkie wersje pliku Machine.config. Plik lub pliki Machine.config można znaleźć w następującym folderze, gdzie <numer_wersji_systemu> jest numerem wersji zainstalowanego systemu Microsoft .NET:
    %katalog_systemu_Windows%\Microsoft.NET\Framework\<numer_wersji_systemu>\CONFIG
    Jeśli na przykład system .NET Framework 1.1 jest zainstalowany na dysku C, wpisz następujące polecenie, a następnie naciśnij klawisz ENTER:
    cd /d %katalog_systemu_Windows%\microsoft.net\framework\v1.1.4322\config
  3. Aby wykonać kopię zapasową pliku Machine.config, wpisz następujące polecenie, a następnie naciśnij klawisz ENTER:
    copy machine.config machine.config.bak
Powtórz te kroki odnośnie do wszystkich wystąpień systemu .NET Framework zainstalowanych w systemie.

Informacje dotyczące instalacji

Firma Microsoft wydała pakiet instalacyjny o nazwie VPModule.msi. Plik VPModule.msi instaluje w systemie plik Microsoft.Web.ValidatePathModule.dll. W trakcie instalacji następuje aktualizacja pliku lub plików Machine.config przy użyciu wpisów nowego modułu protokołu HTTP we wszystkich zainstalowanych wersjach systemu .NET Framework.

Aby użyć pakietu instalacyjnego, należy pobrać plik VPModule.msi, kliknąć dwukrotnie pakiet, aby rozpocząć instalację, a następnie postępować zgodnie z instrukcjami dotyczącymi instalacji.

Jakie czynności wykonuje plik VPModule.msi

Instalator najpierw wyodrębnia plik o nazwie Microsoft.Web.ValidatePathModule.dll. Następnie aktualizuje wszystkie pliki Machine.config znajdujące się na komputerze tak, aby znalazł się w nich następujący wpis:
    <system.web>
        <httpModules>
            <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, 
PublicKeyToken=eba19824f86fdadd"/>
        </httpModules>
    </system.web>
Następnie instalator dodaje plik Microsoft.Web.ValidatePathModule.dll do pamięci podręcznej Global Assembly Cache (GAC).

Dla deweloperów, którzy chcieliby wiedzieć, jakie czynności programowe wykonuje plik Microsoft.Web.ValidatePathModule.dll, poniżej zamieszczono kod źródłowy:
namespace Microsoft.Web {
    public class ValidatePathModule : IHttpModule {
        public ValidatePathModule() {
        }
        void IHttpModule.Init(HttpApplication app) {
            app.BeginRequest += new EventHandler(this.OnBeginRequest);
        }
        void IHttpModule.Dispose() {
        }
        void OnBeginRequest(Object source, EventArgs eventArgs) {
            HttpRequest request = (source as HttpApplication).Request;
            string physicalPath = request.PhysicalPath;
            if (request.Path.IndexOf('\\') >= 0 || Path.GetFullPath(physicalPath) != physicalPath) {
                throw new HttpException(404, "Not Found");
            }
        }
    }
}
Aby uzyskać informacje na temat przełączników wiersza polecenia, których można użyć podczas instalowania modułu, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

Informacje dotyczące weryfikacji instalacji

Jeśli moduł został zainstalowany poprawnie, istnieje następujący klucz rejestru:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
UWAGA: Tego klucza rejestru nie ma w systemie, jeśli moduł protokołu HTTP został zainstalowany ręcznie w sposób opisany w sekcji „Informacje dotyczące instalacji niestandardowej”. Opcja /a powoduje tylko wyodrębnienie plików. Nie jest wtedy aktualizowany rejestr.

Informacje dotyczące usuwania

Aby usunąć zmiany, uruchom plik VPModule.msi i wybierz opcję Usuń. Można także użyć apletu Dodaj/Usuń programy z Panelu sterowania.

Informacje dotyczące instalacji nienadzorowanej

Aby zainstalować zmiany w trybie nienadzorowanym, użyj następującego polecenia:
msiexec /i vpmodule.msi /qb-
Aby usunąć zmiany w trybie nienadzorowanym, użyj następującego polecenia:
msiexec /x vpmodule.msi /qb-

Informacje dotyczące instalacji niestandardowej

Aby ręcznie zainstalować moduł protokołu HTTP, wykonaj następujące kroki:
  1. Wykonaj kopie zapasowe plików Machine.config. Aby uzyskać więcej informacji o tym, jak to zrobić, zobacz sekcję „Wymagania wstępne”.
  2. Pobierz pakiet. Aby uzyskać więcej informacji o tym, jak to zrobić, zobacz sekcję „Informacje dotyczące pobierania”.
  3. Użyj następującego polecenia, aby wyodrębnić plik Microsoft.Web.ValidatePathModule.dll z pliku VPModule.msi do wybranej lokalizacji:
    msiexec /a vpmodule.msi
  4. Użyj następującego polecenia, aby skopiować moduł do pamięci podręcznej GAC:
    gacutil -i microsoft.web.validatepathmodule.dll
    UWAGA: Moduł jest wyodrębniany do folderu o nazwie „Microsoft ValidatePath Module”, będącego podfolderem lokalizacji określonej w trakcie wyodrębniania.
  5. Otwórz pliki Machine.config w edytorze i dodaj następujący wpis do sekcji <httpModules>:
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, 
    PublicKeyToken=eba19824f86fdadd"/>
    

Znane problemy

Znane są następujące problemy:
  • Instalator orientuje się, że aktualizacja plików Machine.config przebiegła pomyślnie, na podstawie wpisu w sekcji <httpModule> dotyczącego pliku Microsoft.Web.ValidatePathModule.dll. Jednak w pewnych okolicznościach obecność tego wpisu może nie zapobiec występowaniu opisanego zachowania.

    Zachowanie to może wystąpić, jeśli istnieje plik Web.config, który czyści listę zdefiniowaną na poziomie pliku Machine.config. Zachowanie to może powodować na przykład następujący lub podobny wpis w pliku Web.config:
    <httpModules>
        <clear/>
    </httpModules>
    
    W tej konfiguracji niemożliwe jest wykonanie modułu wymaganego w przypadku tego problemu w tej konkretnej aplikacji. Konfiguracja ta występuje zazwyczaj wtedy, gdy aplikacja, zamiast korzystać z modułów protokołu HTTP zdefiniowanych na poziomie pliku Machine.config, czyści listę i definiuje nową, która jest właściwa dla bieżącej aplikacji.
  • W przypadku zainstalowania innej wersji systemu .NET Framework należy odinstalować plik VPModule.msi, a następnie zainstalować go ponownie.
  • Aby uzyskać dodatkowe informacje dotyczące problemów z usługami raportowania programu SQL Server i modułem VPModule.msi, kliknij poniższy numer artykułu w celu wyświetlenia artykułu z bazy wiedzy Microsoft Knowledge Base:
    887787 You may receive error messages from Reporting Services after you install the ASP.NET ValidatePath Module

Materiały referencyjne

Aby uzyskać dodatkowe informacje, kliknij numer artykułu poniżej w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
887405 Jak używać Instalatora Windows i przystawki Zasady grupy do rozmieszczania pliku VPModule.msi w domenie usługi Active Directory
Aby uzyskać dodatkowe informacje, kliknij numer artykułu poniżej w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
887404 Jak rozmieścić moduł ValidatePath przy użyciu programu Systems Management Server 2003
Aby uzyskać dodatkowe informacje, kliknij numer artykułu poniżej w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
887290 Jak korzystać ze skanera modułu ValidatePath do programu ASP.NET (VPModuleScanner.js)
Aby uzyskać więcej informacji o stanach sesji, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconsessionstate.asp

Właściwości

Numer ID artykułu: 887289 - Ostatnia weryfikacja: 3 grudnia 2007 - Weryfikacja: 3.10
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 .NET Framework Software Development Kit 1.0 Service Pack 2
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 1
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 2
  • Microsoft ASP.NET 1.0
Słowa kluczowe: 
kbsecurity kbtshoot KB887289

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