Aplica-se A
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

Sintomas

Quando utiliza a funcionalidade do IIS Common Gateway Interface (CGI) para hospedar um programa executável que utilizar uma biblioteca de determinados para redirecionar solicitações, podem ser ilegítimos pedidos baseado na presença de um cabeçalho de pedido de "PROXY". Várias plataformas de aplicação da web são conhecidas para utilizar esta biblioteca. Estas incluem PHP, Python e ir, entre outros.

Causa

CGI é uma interface que permite a um servidor web para hospedar aplicações que são executados como processos executáveis. Quando é recebido um pedido por um servidor web, o servidor inicia um novo processo para processar este pedido único. Quando o pedido estiver concluído, o processo termina. Na ordem para o processo ter acesso aos dados do pedido, os cabeçalhos de pedido são incluídos como variáveis de ambiente que tenham "HTTP _" pré-concebido para o respectivo nome. Assim, os processos CGI para pedidos que contêm um cabeçalho com o nome "Proxy" têm uma variável de ambiente "Proxy_http" que tenham o mesmo valor que o cabeçalho do pedido.A linha de comandos de Laço e biblioteca são normalmente utilizados para permitir vários tipos de aplicações para efectuar pedidos para vários tipos de servidores, incluindo servidores web. Esta biblioteca pode ser configurada através da utilização de parâmetros de linha de comandos ou possa ler os respectivos parâmetros de configuração partir as variáveis de ambiente do processo de anfitrião. "Proxy_http" é um dos vários parâmetros de configuração que são utilizados pelo Laço. "Proxy_http" é utilizada pelo Laço para enviar um pedido HTTP através do proxy configurado.Nota Isto está relacionado com "Proxy_http" como a representação de um cabeçalho de pedido de cliente.Quando está alojado Laço dentro de um processo CGI e que o processo contém uma variável de ambiente é denominada "Proxy_http", o laço utiliza o respectivo valor para enviar dados pedidos através do proxy HTTP cujo valor é especificado na variável de ambiente. Isto ocorre porque o laço espera que "Proxy_http" é uma directiva de configuração e não um cabeçalho de pedido de cliente.

Solução alternativa

Para contornar este problema, não utilize CGI num servidor que está a executar o IIS. CGI é uma interface obsoleta em grande medida, que é substituída por interfaces mais recentes e mais relacionadas com o desempenho. Especificamente, PHP, Python e ir devem ser hospedado através de FastCGI no IIS. FastCGI não utilizar variáveis de ambiente para os cabeçalhos de pedido de cliente e não tem este problema. No entanto para PHP, algumas aplicações poderão utilizar a função de getenv() de PHPs para obter as variáveis de ambiente. Mesmo quando PHP não estiver alojado no interior de um processo CGI, replica o comportamento CGI por injecção os valores de cabeçalho de pedido para o conjunto de dados disponíveis para a função getenv() . Se utilizar uma aplicação de PHP que obtém proxy_http desta forma, as seguintes atenuações de desmarcar o valor do cabeçalho ou rejeitar os pedidos com um cabeçalho PROXY são eficazes.Se tiver de utilizar CGI por algum motivo, ou bloquear pedidos que contêm um cabeçalho de pedido com o nome "Proxy" ou desmarque o valor do cabeçalho.  Isto acontece porque "Proxy" não é um nome de cabeçalho do pedido padrão e browsers serão geralmente não enviá-lo.Para bloquear um pedido que contém um cabeçalho Proxy (a solução preferencial), execute o seguinte comando:

appcmd set config /section:requestfiltering / + requestlimits.headerLimits. [cabeçalho = 'proxy', sizelimit = '0']Nota O appcmd.exe não é normalmente no caminho e podem ser encontrados no directório %systemroot%\system32\inetsrv.Para limpar o valor do cabeçalho, pode utilizar a seguinte regra de reescrita de 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>

Nota Reescrever o URL é um suplemento transferível do IIS e não está incluído numa instalação predefinida IIS.

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.