Platí pro
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

Příznaky

Při použití funkce služby IIS rozhraní CGI (Common Gateway) provozovat spustitelný program, který pomocí určité knihovny přesměrování požadavků, požadavků může být zaslán na nesprávné místo na základě přítomnosti požadavek záhlaví "PROXY". Při použití této knihovny je známo několik webových aplikací platformy. PHP, Python a Go, patří mimo jiné.

Příčina

CGI je rozhraní, které umožňuje webovému serveru k hostování aplikací, které běží jako spustitelné procesy. V případě, že webový server obdrží požadavek, je server spuštěn nový proces pro zpracování jedné žádosti. Po dokončení požadavku ukončení procesu. V pořadí pro přístup k data požadavku procesu jsou k dispozici jako proměnné prostředí, které mají "HTTP_" před jejich název hlavičky požadavku. Proto mají procesy CGI pro požadavky, které obsahují záhlaví s názvem "Proxy" proměnné prostředí "HTTP_PROXY", které mají stejnou hodnotu jako hlavičky požadavku.Chcete-li povolit různé druhy aplikací tak, aby požadavky na různé druhy serverů, včetně serverů WWW se běžně používají kudrlinkou příkazového řádku a knihovny. Tuto knihovnu lze nakonfigurovat pomocí parametrů příkazového řádku, nebo jej číst parametrů konfigurace z proměnných prostředí hostitelského procesu. "HTTP_PROXY" je jedním z mnoha parametry konfigurace, které jsou používány otočení. Odeslat požadavek HTTP pomocí nakonfigurovaného serveru proxy používá kudrlinkou "HTTP_PROXY".Poznámka: To nesouvisí s "HTTP_PROXY" jako znázornění hlavičky požadavku klienta.Při otočení je hostována v rámci procesu CGI, obsahující proměnnou prostředí s názvem "HTTP_PROXY" proces, kudrlinkou jeho hodnotu používá k odesílání požadovaných dat prostřednictvím serveru proxy HTTP, jehož hodnota se zadává v proměnné prostředí. K tomu dochází, protože kudrlinkou očekává, že je "HTTP_PROXY" Konfigurace směrnice a nikoli hlavička požadavku klienta.

Jak potíže obejít

Chcete-li tento problém vyřešit, nepoužívejte CGI na serveru se spuštěnou službou IIS. CGI je z velké části zastaralé rozhraní, která je nahrazena novější a další související s výkonem. Konkrétně být hostovány PHP, Python a přejít přes FastCGI ve službě IIS. FastCGI nebude používat proměnné prostředí pro záhlaví požadavku klienta a nemá tento problém. Nicméně pro PHP, některé aplikace mohou používat funkce getenv() PHPs načíst proměnné prostředí. Pokud není ani PHP umístěn uvnitř proces CGI, injekcemi hodnot hlavičky požadavku do sady dat, které jsou k dispozici funkce getenv() replikaci chování CGI. Pokud používáte PHP aplikace, která načte http_proxy použit tímto způsobem, platí následující skutečnosti snižující závažnost rizika vymazání hodnotu hlavičky nebo zamítnutí žádosti s záhlaví PROXY.Pokud máte z nějakého důvodu použít CGI, blokovat požadavky, které obsahují požadavek na záhlaví s názvem "Proxy" nebo zrušte hodnotu hlavičky.  Je to proto, že "Proxy" není název záhlaví standardní požadavek a prohlížečů obecně neodešle ji.K blokování požadavku, který obsahuje záhlaví Proxy (nejlepší řešení), spusťte následující příkaz:

appcmd set config /section:requestfiltering / + requestlimits.headerLimits. [záhlaví proxy, sizelimit = "0" =]Poznámka: Appcmd.exe obvykle není v cestě a lze nalézt v adresáři %systemroot%\system32\inetsrvChcete-li vymazat hodnotu hlavičky, můžete použít následující pravidlo revize 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>

Poznámka: Adresa URL revize je ke stažení přidat in služby IIS a není součástí výchozí instalace služby IIS.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.