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

Sümptomid

IIS-i Common Gateway Interface (CGI) funktsiooni kasutamisel majutamiseks käivitatava programmi, mida kasutada teatud teeki taotlused suunata taotlused võib valesti "PROXY" taotluse päise põhjal. Mitu web application platvormid nimetatakse seda kasutada. Nende hulka kuuluvad PHP, Python ja minge, teiste seas.

Põhjus

CGI on liides, mis võimaldab web server hosti rakendusi, mis töötavad kui käivitatava protsessid. Taotluse saamisel veebiserver server alustab uue protsessi ühe taotluse töötlemiseks. Kui taotlus on lõpule viidud, suletakse protsess. Selleks, et protsess on juurdepääs taotluse andmeid, taotluse päised on lisatud keskkonnamuutujaid, mis on "HTTP_" täiendatud oma nime. Seetõttu on CGI protsessid taotlused, mis sisaldavad päis, mille nimi on "Proxy" "HTTP_PROXY" keskkonnamuutuja, mis on sama väärtusega kui taotluse päis.CURL käsurea ja teegi kasutatakse tavaliselt lubada mitmesugused rakendused esitada erinevaid servereid, sealhulgas veebiserveritesse. Selle teegi saab konfigureerida, kasutades käsurea parameetrite või saate lugeda oma konfiguratsiooniparameetrid hosti protsess keskkonnamuutujaid. "HTTP_PROXY" on üks palju konfiguratsiooniparameetrid cURL kasutatavad. "HTTP_PROXY" kasutatakse cURL HTTP-taotluse konfigureeritud puhvri kaudu saata.Märkus. See on seotud "HTTP_PROXY" esitus kliendi taotluse päis.Kui cURL majutatud CGI protsessi jooksul, ning see protsess sisaldab keskkonnamuutuja, mille nimi on "HTTP_PROXY", kasutab cURL selle väärtuseks soovitud andmed, mille väärtuseks on määratud keskkonnamuutuja HTTP puhverserveri kaudu saatmiseks. Selle põhjuseks on cURL eeldab, et "HTTP_PROXY" on konfiguratsiooni direktiivi ja mitte kliendi taotluse päis.

Lahendus

Selle probleemi vastukaaluna Ärge kasutage CGI serveris, kus töötab IIS-i. CGI on suurel määral aegunud liides, mis asendab uuem ja jõudlusega seotud liidesed. Täpsemalt peaks FastCGI IIS kaudu hostitud PHP, Python ja minna. FastCGI kasutada keskkonnamuutujaid kliendi taotluse päised ja ei ole probleemi. Aga php, mõned rakendused võivad kasutada PHPs getenv() funktsiooni keskkonnamuutujaid. Isegi kui PHP ei majutatud CGI protsessi, see tiražeerib CGI käitumine süstides taotluse päise väärtused andmed getenv() funktsiooni komplekt. PHP rakendus, mis toob HTTP_PROXY sel viisil kasutamisel kehtivad järgmised kergendamise tühjendamine päise väärtus või tagasi lükata taotlust puhverserveri päisega.Kui teil on mingil põhjusel CGI kasutamiseks, taotlused, mis sisaldavad taotluse päise nimega "Proxy" blokeerida või tühjendage päise väärtus.  Seda sellepärast, et "Proxy" pole taotluse päise nimi ja brauserid üldiselt ei saada seda.Blokeerimise taotlus, mis sisaldab puhvri päis (eelistatud lahendus), käivitage järgmist käsurida:

appcmd set config /section:requestfiltering / + requestlimits.headerLimits. [päis = puhverserveri, sizelimit = '0']Märkus. Selle appcmd.exe ei ole tavaliselt tee ja võib leida %systemroot%\system32\inetsrv kataloogTühjendage päise väärtus, saate kasutada järgmist URL-i ümberkirjutamise reegel:

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

Märkus. URL-i ümberkirjutamise on ka allalaaditav lisandmoodul IIS-i ja IIS-i installimisel ei kaasata.

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.