Отнася се за
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

Симптоми

Когато използвате функцията за IIS Common Gateway Interface (CGI) да хоствате изпълним програма, която използва определена библиотека за пренасочване на заявки, заявки могат да бъдат неправилно адресирани въз основа на наличието на заглавка на заявка "ПРОКСИ". Няколко уеб приложение платформи е известно, че използват библиотеката. Те включват PHP, питон и движение, и др.

Причина

CGI е интерфейс, който позволява на уеб сървър за множество приложения, които работят като изпълним процеси. При поискване от уеб сървър, сървърът започва нов процес да обработи тази заявка за един. Когато заявката, процесът изходи. За процеса на достъп до данните на искането, заглавките са включени като променливи, които имат "HTTP_" пред името си. Затова CGI процеси за заявки, които съдържат заглавка, която се нарича "Прокси" имат променливата на средата "HTTP_PROXY", които имат същата стойност като заглавките.Навийте командния ред и библиотеки са често използвани за разрешаване на различни видове приложения да отправят искания за различни видове сървъри, включително уеб сървъри. Библиотеката може да бъде конфигуриран чрез параметри на командния ред, или може да чете му конфигурация параметри от хост процес променливи. "HTTP_PROXY" е един от многото конфигурация параметри, използвани от къдря. "HTTP_PROXY" се използва от къдря да изпрати HTTP искане до конфигуриран прокси.Забележка: Това е свързана с "HTTP_PROXY" като представяне на клиента заглавките.Когато къдря се хоства в CGI процес и този процес съдържа променлива се нарича "HTTP_PROXY", навийте използва стойността му за изпращане на исканите данни чрез HTTP прокси сървър, чиято стойност е указан в променливата на средата. Това е защото къдря очаква, че "HTTP_PROXY" е Директива конфигурация и не клиент със заглавките.

Заобикаляне на проблема

За да заобиколите този проблем, не използват CGI на сървър, който изпълнява IIS. CGI е предимно остарели интерфейс, който се заменя с по-нови и по-свързани с връзки. По-конкретно PHP, питон и движение трябва да се проведе чрез FastCGI на IIS. FastCGI не използва променливи на средата за клиента заглавките и нямате този проблем. Обаче за PHP, някои приложения могат да използват PHPs getenv() функция за извличане на променливи на средата. Дори когато PHP се хоства в CGI процес, то възпроизвежда CGI поведението до инжекция заявка заглавка стойности в набор от данни, функцията му getenv() . Ако използвате PHP приложение, което извлича HTTP_PROXY по този начин, следните предпазни мерки заглавката стойност или отхвърля заявките със заглавие на прокси сървъра са ефективни.Ако трябва да използвате CGI по някаква причина, или блокиране на заявки, които съдържат заглавките, наречена "Proxy" или изчистване на стойността на заглавката.  Това е защото "Прокси" не е стандартна заявка заглавка и браузъри ще обикновено не го изпратите.За да блокирате заявка, която съдържа заглавка на прокси сървър (предпочитаното решение), изпълнете следния команден ред:

Appcmd зададете config /section:requestfiltering / + requestlimits.headerLimits. [горен = "прокси" sizelimit = "0"]Забележка: Appcmd.exe обикновено не е на място и се намира в директорията %systemroot%\system32\inetsrvЗа да изчистите стойността на заглавката, можете да използвате следния 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>

Забележка: Презапис на URL е изтегляне добавка за IIS и не е включена по подразбиране IIS инсталация.

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.