Desativar listagens de diretórios com 404 em vez de 403

7

Desativei as listagens de diretório, como assim ...

Options -Indexes

Quando tento acessar um diretório como este: -

www.example.com/secret/

Eu recebo uma resposta 403 Proibida .

No entanto, quero uma resposta 404 Not Found , para que os hackers não consigam adivinhar minha estrutura de diretórios com tanta facilidade. Como eu faria isso?

    
por Rik Heywood 28.02.2011 / 14:58

5 respostas

7

Ative mod_rewrite e AllowOverride em / secret. Então crie o .htaccess:

RewriteEngine On
RewriteBase   /secret
RewriteRule   ^$ - [R=404,L]
    
por 28.02.2011 / 15:22
2

Eu procurei na internet por uma resposta para um problema semelhante. Embora o mod_rewrite seja uma solução possível, acho que a melhor solução usa a diretiva "RedirectMatch".

Veja StackOverflow: problema ao redirecionar 403 proibido para 404 não encontrado

    
por 01.08.2011 / 16:38
1

Crie um script 403 personalizado que retorne um erro 404.

Por exemplo, no PHP:

<?php
header("HTTP/1.0 404 Not Found");
die("<h1>404 Not Found</h1>");
?>

Agora configure o Apache para usar este script para resultados 403:

ErrorDocument 403 /403.php

Não mexa nas reescritas e funciona instantaneamente para todo o servidor.

    
por 18.01.2017 / 12:15
0

Minha solução para parar de exibir o conteúdo do diretório como lista e exibir erro 404 é simples. Crie o arquivo .htaccess no diretório raiz do seu projeto e escreva quais diretórios devem ser protegidos.

Estrutura de diretórios

- your_root_directory
  - .htaccess
  - 404.html
  - index.html 
  - app
    - other files I do not want to show
  - models
    - other files I do not want to show

.htaccess

RewriteEngine On
RewriteRule   ^app/ - [R=404,L]
RewriteRule   ^models/ - [R=404,L]

ErrorDocument 404 /your_root_directory/404.html

A segunda linha do .htaccess não permite acesso a itens de lista no diretório do aplicativo e a todos os seus sub-diretórios.

A terceira linha do .htaccess não permite acesso a itens de lista no diretório de modelos e a todos os seus sub-diretórios.

O quarto da linha .htaccess define nosso próprio erro 404 (se você não quiser mostrar o erro padrão do apache).

Lembre-se de limpar o cache do seu navegador quando você trabalha com o htaccess.

    
por 18.01.2017 / 11:51
-2

Use o .htaccess para mascarar erros. Veja este guia:

link

    
por 28.02.2011 / 15:10