Solicitările de antet IIS CGI HTTP_PROXY poate fi Redirecționat

IMPORTANT: Acest articol este tradus cu ajutorul software-ului Microsoft de traducere automată și poate fi corectat prin intermediul tehnologiei Community Translation Framework (CTF). Microsoft oferă articole traduse automat, post-editate de comunitate și articole traduse de oameni, pentru a permite accesul la toate articolele din Baza noastră de cunoștințe în mai multe limbi. Articolele traduse automat și post-editate pot conține greșeli de vocabular, sintaxă și/sau gramatică. Microsoft nu este responsabil de inexactitățile, erorile sau daunele cauzate de traducerea greșită a conținutului sau de utilizarea acestuia de către clienți. Găsiți mai multe informații despre traducerea în colaborare la http://support.microsoft.com/gp/machine-translation-corrections/ro.

Faceți clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 3179800
Simptome
Când utilizați caracteristica IIS Common Gateway Interface (CGI) pentru a găzdui un program executabil care utilizează o bibliotecă de anumite să redirecționați cererile, solicitările pot misdirected pe baza prezenței de un antet de solicitare "PROXY". Mai multe platforme de aplicație web sunt cunoscute pentru a utiliza această bibliotecă. Acestea includ PHP, Python și Go, printre altele.
Cauză
CGI este o interfață care permite un server web gazdă aplicațiile care se execută ca executabil procese. Când o solicitare este primit de un server web, server începe un nou proces pentru a gestiona această solicitare singur. Atunci când solicitarea este terminată, procesul se închide. Pentru ca procesul să aibă acces la datele de solicitare, anteturile de solicitate sunt incluse ca variabilele de mediu care au "HTTP_" exprimat la nume de sign-in lor. De aceea, procesele CGI pentru solicitările care conține un antet care este numit "Proxy" au o variabilă de mediu "HTTP_PROXY" care au aceeași valoare ca antet de solicitare.

linia Către de comandă îndoire și libraryare frecvent utilizate pentru enablevarious tipuri de aplicații să facă cereri pentru diferite tipuri de fermă de servere, inclusiv fermă de servere web. Această bibliotecă pot fi configurate utilizând parametri de linia Către de comandă, sau se poate citi sale parametrii de configurare din proces gazdă variabilele de mediu. "HTTP_PROXY" este unul dintre multe parametrii de configurare care sunt utilizate de îndoire. "HTTP_PROXY" este utilizat de îndoire pentru a trimite o solicitare de HTTP prin proxy configurat.

Notă Aceasta este independent de la "HTTP_PROXY" ca reprezentare a unui antet de solicitare client.

Când îndoire este găzduită în cadrul unui proces de CGI, iar procesul conține o variabilă de mediu care este numit "HTTP_PROXY", îndoire utilizează valoarea la sendrequested date prin proxy HTTP a cărei valoare este specificat în variabila de mediu. Aceasta se întâmplă deoarece îndoire așteaptă ca "HTTP_PROXY" este o directivă de configurare și nu un antet de solicitare client.
Remediere
Pentru a rezolva această problemă, utilizați CGI pe un server care execută IIS. CGI este o interfață în mare măsură învechite care este înlocuită de interfețe mai noi și mai legate de performanță. Mai precis, PHP, Python şi du-te ar trebui să fie găzduit prin FastCGI IIS. FastCGI nu utilizează variabile de mediu pentru client anteturile de solicitate și nu are această problemă. Cu toate acestea pentru PHP, unele aplicații pot folosi PHPs getenv() pentru a prelua variabile de mediu. Chiar și atunci când PHP nu găzduită în interiorul unui proces CGI, se reproduce comportamentul CGI de injectare valorile din antet solicitare în setul acoperire de date disponibile pentru funcția getenv() . Dacă utilizați o aplicație PHP care preia HTTP_PROXY în acest mod, următoarele mitigations golirea valoarea antet sau a respinge solicitările cu un antet de PROXY sunt efective.

Dacă trebuie să utilizați CGI pentru un motiv oarecare, bloca solicitările care conține un antet de solicitare denumit "Proxy" sau debifa valoarea de antet. Aceasta se întâmplă deoarece "Proxy" nu este un nume de antet de solicitare standard browsere, în general, nu trimite.

Pentru a bloca o solicitare care conține un antet de Proxy (soluția preferată), executaţi următoarea linia Către de comandă:
appcmd setați config /section:requestfiltering / + requestlimits.headerLimits. [antet = proxy, sizelimit = '0']

Notă Appcmd.exe nu este de obicei în cale și poate fi găsit în directorul %systemroot%\system32\inetsrv

Pentru a goli valoarea de antet, se poate utiliza următoarea regulă rescriere 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>

Notă Rescriere URL este o descărcabile de completare pentru IIS și nu se află într-o instalare implicită de IIS.

Avertisment: acest articol a fost tradus automat

Свойства

Номер статьи: 3179800 — последний просмотр: 07/21/2016 12:03:00 — редакция: 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, Pachet Service Pack 2 pentru Windows Vista

  • atdownload kbbug kbexpertiseinter kbfix kbsecbulletin kbsecurity kbsecvulnerability kbmt KB3179800 KbMtro
Отзывы и предложения