Begäranden som IIS CGI HTTP_PROXY huvud kan omdirigeras.

VIKTIGT: Denna artikel har översatts av Microsofts programvara för maskin-översättning och möjligen efterredigerats via CTF-teknologi av Microsofts community istället för av en professionell mänsklig översättare. För att du på ditt eget språk skall få tillgång till samtliga Knowledge Base-artiklar erbjuder Microsoft både mänskligt översatta såväl som maskinöversatta artiklar samt artiklar som efterredigerats av en community. En maskinöversatt artikel likväl som en artikel som blivit efterredigerad av en community är dock inte alltid helt perfekt, då de kan innehålla misstag i ordförrådet, syntax- och grammatikfel. Microsoft är inte ansvarigt för några felaktigheter, misstag eller skador orsakade av felöversättningar eller för våra kunders bruk av innehållet. Microsoft uppdaterar ofta sin programvara för maskinöversättning samt de verktyg som förbättrar den maskinöversatta efterredigeringen.

Den engelska versionen av artikeln är följande: 3179800
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 klar avslutar processen. För att processen ska ha åtkomst till begärda data inkluderas begärandehuvuden som miljövariabler som har "HTTP_" till sitt namn före. 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 libraryare används vanligen för att enablevarious typer av program du gör 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 en representation av en klient begärans huvud.

När vändningen finns inom en CGI-process och att processen innehåller en miljövariabel med namnet "HTTP_PROXY", används dess värde till sendrequested data via HTTP-proxy vars värde anges i miljövariabeln vändningen. 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.
Workaround
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 i IIS. FastCGI använder inte miljövariabler för klienten begärandehuvuden och har inte det här problemet. Men för PHP, vissa program kan funktionen PHPs getenv() 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 effektiva.

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 vanligtvis att skicka den.

Om du vill blockera en begäran som innehåller ett 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 om du vill 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.

Varning: Den här artikeln har automatöversatts

Egenskaper

Artikel-id: 3179800 – senaste granskning 07/21/2016 13:36:00 – revision: 2.0

Windows 10, Windows 10 Version 1511, 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 Standard, Windows Server 2012 Essentials, Windows Server 2012 Foundation, Windows Server 2008 R2 Service Pack 1, Windows 7 Service Pack 1, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 2

  • atdownload kbbug kbexpertiseinter kbfix kbsecbulletin kbsecurity kbsecvulnerability kbmt KB3179800 KbMtsv
Feedback