Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Sintomas

Quando você usa o recurso de interface CGI do IIS para hospedar um programa executável que usa uma determinada biblioteca para redirecionar solicitações, estas últimas podem ser mal direcionadas com base na presença de um cabeçalho de solicitação "PROXY". Várias plataformas de aplicativos Web são conhecidas por usar essa biblioteca. Essas plataformas incluem a PHP, a Python e a Go, entre outras.

Causa

A CGI é uma interface que permite que um servidor Web hospede aplicativos que são executados como processos executáveis. Quando uma solicitação é recebida por um servidor Web, este inicia um novo processo para lidar com essa única solicitação. Quando a solicitação for concluída, o processo será encerrado. Para que o processo tenha acesso aos dados da solicitação, cabeçalhos de solicitação são incluídos como variáveis de ambiente que têm "HTTP_" anexado ao nome. Portanto, processos CGI para solicitações que contêm um cabeçalho denominado "Proxy" têm uma variável de ambiente "HTTP_PROXY" que apresenta o mesmo valor que o cabeçalho da solicitação.

A linha de comando e biblioteca cURL são comumente usadas​para permitir que vários tipos de aplicativos façam solicitações a vários tipos de servidores, incluindo servidores Web. Essa biblioteca pode ser configurada usando parâmetros de linha de comando ou pode ler seus parâmetros de configuração a partir das variáveis de ambiente de processos de hosts. "HTTP_PROXY" é um dos muitos parâmetros de configuração que são usados por cURL. "HTTP_PROXY" é usado por cURL para enviar uma solicitação HTTP por meio do proxy configurado.

Observação Isso não está relacionado a "HTTP_PROXY" como a representação de um cabeçalho de solicitação de cliente.

Quando cURL está hospedada dentro de um processo da CGI e esse processo contém uma variável de ambiente denominada "HTTP_PROXY", ela usa seu valor para enviar dados solicitados através do proxy HTTP cujo valor é especificado na variável de ambiente. Isso ocorre porque cURL espera que "HTTP_PROXY" seja uma diretiva de configuração, e não um cabeçalho de solicitação de cliente.

Como Contornar

Para contornar esse problema, não use a CGI em um servidor que esteja executando o IIS. CGI é uma interface obsoleta substituída por interfaces mais recentes e mais relacionadas ao desempenho. Especificamente, a PHP, a Python e a Go devem ser hospedadas por meio da FastCGI no IIS. A FastCGI não usa variáveis de ambiente para cabeçalhos de solicitação de cliente e não apresenta esse problema. No entanto, para PHP, alguns aplicativos podem usar a função PHP getenv() para recuperar variáveis de ambiente. Mesmo quando a PHP não está hospedada em um processo da CGI, ela replica o comportamento da CGI por meio da injeção de valores de cabeçalho de solicitação no conjunto de dados disponíveis para sua função getenv(). Se você usar um aplicativo PHP que recupera HTTP_PROXY dessa maneira, as seguintes reduções de limpeza o valor do cabeçalho ou de rejeição de solicitações com um cabeçalho PROXY serão eficazes.

Se você tiver que usar a CGI para algum motivo, bloqueie solicitações que contenham um cabeçalho de solicitação denominado "Proxy" ou limpe o valor do cabeçalho.  Isso porque "Proxy" não é um nome de cabeçalho de solicitação padrão, e os navegadores geralmente não o enviarão.

Para bloquear uma solicitação que contém um cabeçalho Proxy (a solução preferencial), execute a seguinte linha de comando:

appcmd set config /section:requestfiltering /+requestlimits.headerLimits.[header='proxy',sizelimit='0']
Observação O arquivo appcmd.exe não está geralmente no caminho e pode ser encontrado no diretório %systemroot%\system32\inetsrv

Para limpar o valor do cabeçalho, você pode usar 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>


Observação O recurso Reescrita de URL é um suplemento para download para o IIS e não está incluído em uma instalação padrão do IIS.

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×