Encaminhar o status do Apache 500 para 404

2

Versão curta : Gostaríamos que o Apache pegasse quando um status 500 fosse dado e retornasse algo como 404. Existe uma maneira de fazer isso?

Versão mais longa : esses servidores estão executando aplicativos que não são nossos e recentemente falharam em uma varredura de conformidade com a PCI devido aos 500 erros de status que podem ocorrer se você mexer no host. No longo prazo, vamos movê-los para uma rede diferente, para que eles não precisem ser compatíveis com PCI, mas, no curto prazo, gostaríamos de uma solução rápida e simplesmente não mostrássemos o status 500 que os aplicativos retornam. Ambas as aplicações isto está acontecendo com aceitar seus pedidos através do Apache.

Espero que esta seja uma regra do mod_rewrite, mas não sei fazer alterações no mod_rewrite com base no código de status.

    
por William W 11.06.2013 / 20:17

3 respostas

2

Se eu entendi corretamente, você deseja capturar o status de erro 500 nos logs enquanto apresenta um erro regular procurando página para seus clientes e scanners.

Algumas lojas da Web fazem isso para "ocultar" os erros mais sérios em seus sites contra invasores. Uma página que gera um status de erro 500 pode ser um bom alvo em um ataque do DOS. Escaneie o site para encontrar a página que gera um erro de 500 servidores, martele essas páginas, acione o código incorreto e espere o banco de dados derreter embaixo.

Você pode apresentar páginas de erro personalizadas usando ErrorDocument 500 yourerrorpage.html

link

    
por 11.06.2013 / 20:34
1

Uma falha na verificação PCI devido a um erro 500? Isso é um pouco estranho. Enfim ...

Configure um padrão VirtualHost (você já deve ter um) que não serve para nada; quaisquer solicitações feitas a ele devem resultar em um 404.

<VirtualHost *:80>
ServerName *
DocumentRoot /var/empty
</VirtualHost>
    
por 11.06.2013 / 20:26
0

Isso seria melhor feito usando um filtro de saída do que uma regra de reescrita.

Uma regra de mod_rewrite teria que fazer uma subsequest ao lado e, em seguida, decidir qual URL usar para ser baseada no que retornou. Se a sub-requisição for bem-sucedida, o conteúdo ainda seria descartado e você teria que repetir a transação como a solicitação principal.

Por outro lado, um filtro de saída pode interceptar a resposta 500 e transformá-la em um 404.

    
por 11.06.2013 / 22:10