Może nastąpić przekierowanie żądań nagłówka tej CGI usług IIS

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\inetsrv

Aby 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.

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Jak zadowalająca jest jakość tłumaczenia?

Co wpłynęło na Twoje wrażenia?

Czy chcesz przekazać jakieś inne uwagi? (Opcjonalnie)

Dziękujemy za opinię!

×