Disabilita gli elenchi di directory con 404 anziché 403


9

Ho disabilitato gli elenchi di directory in questo modo ...

Options -Indexes

Quando provo ad accedere a una directory come questa: -

www.example.com/secret/

Ottengo una risposta proibita 403 .

Tuttavia, voglio una risposta 404 Not Found , quindi gli hacker non possono indovinare la mia struttura di directory così facilmente. Come potrei farlo?



Me ne rendo conto, ma non ha senso renderlo facile per chiunque, soprattutto perché ci vuole così poco sforzo per renderlo più difficile.
Rik Heywood,

Risposte:


8

Abilita mod_rewrite e AllowOverride in / secret. Quindi creare .htaccess:

RewriteEngine On
RewriteBase   /secret
RewriteRule   ^$ - [R=404,L]


1

Crea uno script 403 personalizzato che restituisce invece un errore 404.

Ad esempio, in PHP:

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

Ora configura Apache per utilizzare questo script per 403 risultati:

ErrorDocument 403 /403.php

Non si scherza con le riscritture e funziona immediatamente per l'intero server.


Non sarà ancora visualizzato come un 403 per le persone che raschiano il server?
IRGeekSauce

1
No. Il server risponderà con un errore 404 corretto dovuto al header()comando.
Gerald Schneider,

-1, perché il tuo messaggio di errore personalizzato potrebbe essere! = Il tuo messaggio di errore del server (sia esso nging o apache o altro). Questa è l'ultima soluzione se non è possibile configurare il server o utilizzare i file .htaccess. Inoltre, questa soluzione non ti impedirà di DirBustering sul tuo sito Web, perché puoi ancora distinguere tali "messaggi di errore personalizzati" dai messaggi di errore del server.
Awaaaaarghhh,

0

La mia soluzione per interrompere la visualizzazione del contenuto della directory come elenco e visualizzare l'errore 404 è semplice. Crea il file .htaccess nella directory principale del tuo progetto e scrivi quali directory devono essere protette.

Struttura delle directory

- 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

La seconda riga di .htaccess non consente l'accesso agli elementi dell'elenco nella directory delle app e in tutte le sue sotto-directory.

La terza riga di .htaccess non consente l'accesso agli elementi dell'elenco nella directory dei modelli e in tutte le sue sotto-directory.

La quarta riga .htaccess imposta il nostro errore 404 (se non si desidera mostrare l'errore predefinito di apache).

Ricordati di cancellare la cache sul tuo browser quando lavori con htaccess.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.