Apache: devolve 404 em vez de 403 com mod_access

3

Eu gosto da sintaxe da abordagem Order deny,allow para restringir o acesso e estou tentando evitar o mod_rewrite: existe uma maneira de fazer IPs não autorizados apenas ver um 404 em vez de um 403, que é o código HTTP de "HÁ ALTO MATERIAL SECRETO AQUI PARE DE OLHAR "?

Obrigado.

    
por Wells Oliver 01.09.2010 / 20:49

2 respostas

3

A página 403 é dependente do Apache que serve esse html .. você pode substituí-la por qualquer diretiva <Location> ou <Directory> simplesmente usando a diretiva ErrorDocument :

<Directory /web/docs>
ErrorDocument 403 /404-page.html
</Directory> 

Etc .. link

    
por 03.09.2010 / 06:36
3

Por favor, note que isso parece, mas não é uma solução!

Ao exibir uma página de erro personalizada (como um 404 falso para um erro 403), você pode obter o resultado desejado no seu navegador da Web, mas um invasor remoto ainda pode obter a verdadeira resposta HTTP do servidor, que ainda é 403 (Proibido), e assim, ele pode adivinhar a estrutura do sistema de arquivos.

Aqui você pode ver um link curl -v -X GET

'< HTTP/1.1 403 Forbidden
< Date: Thu, 04 Nov 2010 14:42:52 GMT
< Server: Apache/2.2.8 (CentOS)
< X-Powered-By: PHP/5.2.10
< Content-Length: 202
< Connection: close
< Content-Type: text/html; charset=ISO-8859-1
< 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>404 Not Found</title>

</head><body>

<h1>Not Found</h1>

<p>The requested URL was not found on this server.</p>'

Bem, eu posso resolver isso e obter a saída deisdered (404 não encontrada) com uma regra específica por pasta:

RewriteRule ^/WebSite/forbidden_badly_hidden_folder$ /error/fake_404_403.php
RewriteRule ^/WebSite/forbidden_badly_hidden_folder/$ /error/fake_404_403.php

Onde /error/fake_404_403.php é propositalmente uma página inexistente, então você obterá a seguinte saída do mesmo teste de curvatura:

< HTTP/1.1 404 Not Found
< Date: Thu, 04 Nov 2010 14:43:12 GMT
< Server: Apache/2.2.8 (CentOS)
< X-Powered-By: PHP/5.2.10
< Content-Length: 202
< Connection: close
< Content-Type: text/html; charset=ISO-8859-1
< 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>404 Not Found</title>

</head><body>

<h1>Not Found</h1>

<p>The requested URL was not found on this server.</p>'

Qual é o comportamento desejado;

A minha pergunta é, é possível escrever uma regra global que faça tal trabalho para qualquer recurso 403 (F) no / var / www / html e subpastas, reescrevendo-o para um caminho inexistente e retornando o 404 desejado Não encontrado?

Obrigado antecipadamente e com os melhores cumprimentos

Marco

    
por 05.11.2010 / 12:16

Tags