Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

Симптоми

Когато използвате функцията за 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 инсталация.

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

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

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

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?
Като натиснете „Подаване“, вашата обратна връзка ще се използва за подобряване на продуктите и услугите на Microsoft. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×