Applies ToWindows 10 Windows 10, version 1511, all editions Windows Server 2012 R2 Datacenter Windows Server 2012 R2 Standard Windows Server 2012 R2 Essentials Windows Server 2012 R2 Foundation Windows 8.1 Enterprise Windows 8.1 Pro Windows 8.1 Windows RT 8.1 Windows Server 2012 Datacenter Windows Server 2012 Datacenter Windows Server 2012 Standard Windows Server 2012 Standard Windows Server 2012 Essentials Windows Server 2012 Foundation Windows Server 2012 Foundation Windows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard Windows Server 2008 R2 Web Edition Windows Server 2008 R2 Foundation Windows 7 Service Pack 1 Windows 7 Ultimate Windows 7 Enterprise Windows 7 Professional Windows 7 Home Premium Windows 7 Home Basic Windows 7 Starter Windows Server 2008 Service Pack 2 Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Windows Server 2008 Foundation Windows Server 2008 for Itanium-Based Systems Windows Vista Service Pack 2 Windows Vista Ultimate Windows Vista Enterprise Windows Vista Business Windows Vista Home Premium Windows Vista Home Basic Windows Vista Starter

Objawy

Korzystając z funkcji usług IIS interfejsu CGI (Common Gateway) do obsługi programu wykonywalnego, który należy używać niektórych biblioteki, aby przekierować żądania, żądania mogą być błędnie na podstawie obecności nagłówka żądania "PROXY". Korzystanie z tej biblioteki są znane kilka platform aplikacji sieci web. Obejmują one PHP, Python i Go, m.in.

Przyczyna

Grafika Komputerowa jest interfejs, który umożliwia serwerowi sieci web do obsługi aplikacji, które są uruchamiane jako procesy pliku wykonywalnego. Po odebraniu żądania przez serwer sieci web, serwer uruchamia nowy proces do obsługi tego pojedynczego żądania. Gdy żądanie zostanie zakończone, kończy proces. Aby proces dostępu do żądanych danych nagłówki żądania są dołączane jako zmienne środowiskowe, które mają "HTTP_" dołączona do ich nazwę. Procesy CGI dla żądań, które zawierają nagłówek o nazwie "Proxy" więc zmiennej środowiskowej "HTTP_PROXY", który ma taką samą wartość jak nagłówka żądania.Zwinięcie wierszu polecenia i biblioteki są powszechnie wykorzystywane w celu umożliwienia różnego rodzaju aplikacje do składania wniosków do różnych rodzajów serwerów, w tym serwerów sieci web. Tej biblioteki można skonfigurować przy użyciu parametrów wiersza polecenia lub ze zmiennych środowiskowych procesu hosta można odczytać jego parametry konfiguracji. "HTTP_PROXY" jest jednym z wielu parametrów konfiguracji, które są używane przez zwinięcie. "HTTP_PROXY" jest używany przez zwinięcie do wysyłania żądania HTTP za pośrednictwem skonfigurowanego serwera proxy.Uwaga Ma to związku "HTTP_PROXY" jako reprezentacja nagłówka żądania klienta.Gdy kędzierzawki jest obsługiwany przez proces CGI, a proces zawiera zmienną środowiskową o nazwie "HTTP_PROXY", zwinięcie używa do wysyłania żądanych danych za pośrednictwem serwera proxy protokołu HTTP, którego wartość jest określona przez zmienną środowiskową jego wartość. Dzieje się tak, ponieważ kędzierzawki oczekuje, że "HTTP_PROXY" jest dyrektywa konfiguracji i nie nagłówek żądania klienta.

Obejście problemu

Aby obejść ten problem, nie należy używać CGI na serwerze, na którym działa program IIS. Grafika Komputerowa jest głównie przestarzałe interfejs, który zastępuje interfejsów nowszych i bardziej związane z wydajnością. W szczególności PHP, Python i Go powinna być obsługiwana za pomocą FastCGI na serwerze IIS. FastCGI nie używać zmiennych środowiskowych dla nagłówków żądania klienta, a nie ma tego problemu. Jednakże dla PHP, niektóre aplikacje mogą używać funkcji getenv() PHPs do pobierania zmiennych środowiskowych. Nawet kiedy PHP nie jest obsługiwany wewnątrz proces CGI, replikuje zachowanie CGI poprzez wstrzyknięcie wartości nagłówka żądania do zestaw danych dostępnych do jego funkcji getenv() . Jeśli używasz aplikacji PHP, która pobiera w ten sposób, że następujące czynniki ograniczające zagrożenie wyczyszczenie wartości nagłówka lub odrzuca żądania z nagłówka PROXY są skuteczne.Jeśli trzeba korzystać z jakiegoś powodu CGI, żądania zawierające nagłówek żądania o nazwie "Proxy" lub wyczyść wartość nagłówka.  To dlatego "Proxy" nie jest nazwą nagłówka standardowe żądanie i przeglądarek zwykle nie wyśle go.Aby zablokować żądania, zawierającą nagłówek serwera Proxy (preferowane rozwiązanie), uruchom następujący wiersz polecenia:

appcmd ustawić config /section:requestfiltering / + requestlimits.headerLimits. [nagłówek = 'proxy', sizelimit = "0"]Uwaga Appcmd.exe nie jest zazwyczaj ścieżka i znajdują się w katalogu %systemroot%\system32\inetsrvAby wyczyścić wartość nagłówka, można użyć następującą regułę przepisać adresu URL:

<system.webServer>    <rewrite>        <rules>            <rule name="Erase HTTP_PROXY" patternSyntax="Wildcard">                <match url="*.*" />                <serverVariables>                    <set name="HTTP_PROXY" value="" />                </serverVariables>                <action type="None" />            </rule>        </rules>    </rewrite></system.webServer>

Uwaga Adres URL przepisać jest do pobrania dodatek do programu IIS i nie znajduje się w domyślnej instalacji usług IIS.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.