Como configurar o Apache para rejeitar pedidos de proxy com código de erro?

2

Eu tenho um servidor executando o Apache que geralmente recebe solicitações de proxy indesejadas, principalmente para sites como www.yandex.ru ou www.baidu.com . Eu não tenho mod_proxy carregado, então essas solicitações não funcionam de verdade. Mas o que acontece é que o conteúdo retornado corresponde à home page do meu website, presumivelmente porque esse é o host virtual padrão. A coisa é, eu prefiro não mandar de volta a página de índice completa para alguém que obviamente não está realmente interessado no meu site; Eu considero isso um desperdício de largura de banda e recursos. Eu prefiro responder com um código de erro HTTP (400, suponho) para sinalizar que o meu servidor não funciona como um proxy, e também para me fazer sentir melhor quando eu examinar os logs de acesso; -)

Qual é a maneira recomendada de configurar o Apache para retornar um código de erro para uma solicitação de proxy? (Por "solicitação de proxy" quero dizer uma que fornece uma URL absoluta na linha de solicitação HTTP.) E qual código de erro HTTP é mais apropriado para isso?

A propósito, eu pensei que isso já teria sido perguntado, mas eu olhei e não o encontrei.

    
por David Z 15.07.2010 / 06:17

1 resposta

2

Você pode simplesmente configurar um vhost padrão que negue todas as solicitações:

<VirtualHost *:80>
  ServerName deny.all
  <Location />
    Order allow,deny
    Deny from all
  </Location>
</VirtualHost>

Com isso em vigor, todas as solicitações acessando um vhost que não seja explicitamente configurado serão negadas com o código de erro HTTP 403 ("Proibido").

Não se esqueça de dar uma olhada na página wiki do Apache em abuso de proxy para obter mais detalhes. Além da solução acima, eles também lhe darão dicas para uma solução baseada em mod_rewrite .

    
por 15.07.2010 / 07:10