Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.

Symptom

När du använder funktionen IIS Common Gateway Interface (CGI) som värd för ett körbart program som använder ett visst bibliotek för att omdirigera begäranden kan begäranden vara misdirected baserat på förekomsten av en "PROXY" begärans huvud. Flera plattformar för webben är känt för att använda biblioteket. Dessa inkluderar PHP, Python och gå, bland annat.

Orsak

CGI är ett gränssnitt som gör att en server som värd för program som körs som körbara processer. När en begäran tas emot av en webbserver, startar servern en ny process för att hantera denna begäran. När begäran är slutförd avslutar processen. För att processen ska ha åtkomst till data för begäran inkluderas begärandehuvuden som miljövariabler som har "HTTP_" inledd till sitt eget namn. Därför har CGI-processer för förfrågningar som innehåller ett sidhuvud som heter "Proxy" miljövariabeln "HTTP_PROXY" som har samma värde som begärans huvud.

CURL-kommandoraden och bibliotek används ofta för att aktivera olika typer av program för att göra förfrågningar till olika typer av servrar, inklusive webbservrar. Det här biblioteket kan konfigureras med hjälp av kommandoradsparametrar eller det kan läsa sina konfigurationsparametrar från miljövariabler för host process. "HTTP_PROXY" är en av många konfigurationsparametrar som används av vändningen. "HTTP_PROXY" används av cURL för att skicka en HTTP-begäran till den konfigurerade proxyn.

Obs!  Det har inget "HTTP_PROXY" som representation av en klient begärans huvud.

När vändningen finns inom en CGI-process och som processen innehåller en miljövariabel med namnet "HTTP_PROXY", använder cURL dess värde för att skicka begärda data via HTTP-proxy vars värde anges i miljövariabeln. Detta beror på att vändningen förväntar sig att "HTTP_PROXY" är ett direktiv för konfiguration och inte en klient begärans huvud.

Temporär lösning

Undvik problemet genom att inte använda CGI på en server som kör IIS. CGI är en till stor del föråldrad gränssnitt som ersätts av nyare och fler prestandarelaterade gränssnitt. PHP, Python och gå bör särskilt finnas för via FastCGI på IIS. FastCGI använder inte miljövariabler för klienten begärandehuvuden och har inte problemet. Men för PHP, vissa program kan använda PHPs getenv() funktion för att hämta miljövariabler. Även om PHP inte finns innanför en CGI-process, replikerar CGI-beteendet genom att injicera begäran huvudvärden i datauppsättningen tillgänglig getenv() funktion. Om du använder ett PHP-program som hämtar HTTP_PROXY på det här sättet är de följande mildrande åtgärder av clearing-värde för sidhuvud eller Avvisa begäran med en PROXY-huvud.

Om du behöver använda CGI av någon anledning, blockera förfrågningar som innehåller ett huvud med namnet "Proxy" eller rensa värdet i huvudet.  Detta beror på att "Proxy" är inte en vanlig begäran huvudnamn och webbläsare kommer i allmänhet inte att skicka den.

Om du vill blockera en begäran som innehåller en Proxy-huvud (bästa lösningen) kör du följande kommando:

Appcmd ange config /section:requestfiltering / + requestlimits.headerLimits. [huvud = proxy, sizelimit = '0']
Obs!  Appcmd.exe brukar inte sökvägen och finns i katalogen %systemroot%\system32\inetsrv

Du kan använda följande URL omarbetning regel för att rensa värdet i huvudet:

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


Obs! URL: en omarbetning är ett hämtningsbart tillägg till IIS och ingår inte i en standardinstallation av IIS.

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×