Taikoma
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

Požymiai

Naudojant funkciją IIS bendrojo šliuzo sąsaja (CGI) pagrindinio kompiuterio vykdomąją programą, naudoti tam tikrų biblioteka nukreipti užklausas, užklausas gali nepagrįsti pagal apie "PROXY" Užklausos antraštė. Naudokite šį žinomi keli žiniatinklio taikomųjų programų platformos. Tai apima PHP, Python ir eiti, tarp kitų.

Priežastis

CGI yra sąsaja, kuri leidžia žiniatinklio serverio pagrindinio kompiuterio programas, kurios veikia kaip vykdomųjų procesus. Gavę užklausą iš žiniatinklio serverio, serverio pradeda naują procesą, vieną užklausą. Kai užklausa bus baigtas, procesas išsijungia. Tam, kad procesas bus turi prieigą prie užklausos duomenų, antraštės yra kaip aplinkos kintamieji, kurie turi "HTTP_" naudojami su savo vardą. Todėl CGI procesai užklausas, kuriuose yra antraštės, pavadintą "Proxy" yra "HTTP_PROXY" aplinkos kintamasis, kurių reikšmė tokia pati kaip užklausos antraštė.Renka komandų eilutę ir bibliotekos paprastai naudojami įvairių programų pateikti užklausą į įvairių tipų serverius, įskaitant interneto serverių. Šią biblioteką galima konfigūruoti naudojant komandų eilutės parametrus, arba jį perskaityti konfigūravimo parametrus iš pagrindinio kompiuterio procesas aplinkos kintamieji. "HTTP_PROXY" yra vienas iš daugelio konfigūracijos parametrus, kuriuos naudoja renka. "HTTP_PROXY" naudojamas renka siunčia HTTP užklausą per sukonfigūruoti tarpinį serverį.Pastaba. Tai nėra susijęs su "HTTP_PROXY" kaip kliento užklausos antraštė vaizdas.Renka nuomojami CGI procese ir kad procesas yra aplinkos kintamąjį, pavadintą "HTTP_PROXY", jo reikšmę renka naudoja siųsti prašomi per HTTP tarpinį serverį, kurio reikšmė nurodyta aplinkos kintamasis. Taip nutinka, nes renka tikisi, kad "HTTP_PROXY" yra direktyvos konfigūracijos ir nėra kliento užklausos antraštė.

Sprendimas

Norėdami išspręsti šią problemą, nenaudokite CGI serveryje, kuriame veikia IIS. CGI yra labai pasenusi sąsaja, kuri pakeičia naujesnės ir efektyvumo susijusiomis sąsajos. Tiksliau, PHP, Python ir vykdymo turėtų nuomojami per FastCGI IIS. Tomas nenaudoja aplinkos kintamieji kliento prašymą antraštes ir nėra šią problemą. Tačiau PHP, kai kurios programos gali naudoti PHPs getenv() funkcija gauti aplinkos kintamieji. Net kai PHP vyko viduje CGI procesą, jis replikuoja CGI veikimo iš leidžiamų užklausos antraštės vertės į savo funkciją getenv() duomenų rinkinį. Jei naudojate PHP programa, kuri nuskaito HTTP_PROXY tokiu būdu, šių priemonėmis sumažinti riziką išvalius antraštės vertės arba atmesti užklausas su PROXY antraštė yra efektyvus.Jei turite naudoti CGI dėl kokių nors priežasčių, arba blokuoti užklausas, kuriuose yra užklausos antraštę, pavadintą "Proxy" arba antraštės reikšmei išvalyti.  Taip yra todėl, kad "Proxy" nėra standartinės užklausos antraštės pavadinimas ir naršyklės paprastai negali siųsti jį.Blokuoti užklausą, kuriame yra Proxy antraštė (pageidaujamas sprendimas), vykdykite šią komandą:

Appcmd nustatyti config /section:requestfiltering / + requestlimits.headerLimits. [antraštė = "proxy" sizelimit = "0"]Pastaba. Toliau appcmd.exe paprastai nėra kelią ir rasite %systemroot%\system32\inetsrv katalogeNorėdami panaikinti antraštės reikšmė, galite naudoti šį URL perrašymo taisyklės:

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

Pastaba. URL perrašymo yra a atsisiųsti papildinį IIS ir nėra įtraukta į numatytąjį IIS diegimą.

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.