Ho un URL che visualizza tutti i file pdf in una determinata directory visitando la seguente posizione del sito:
Questo presenta qualche vulnerabilità di sicurezza?
Dipende da cosa c'è dentro.
Originariamente l'idea alla base del web era di fornire un catalogo di informazioni utili; ogni file in una directory pubblica contiene alcune informazioni e un indice viene generato automaticamente per rendere accessibili tali informazioni. L'intero motivo per cui il tuo file predefinito è tradizionalmente chiamato index.html
è perché il file teoricamente dovrebbe essere un indice, proprio come quello generato automaticamente, ma forse formattato in modo diverso.
Se la directory non contiene nient'altro che file accessibili pubblicamente (come immagini, PDF, file HTML o what-have-you), l'indice generato automaticamente non è meno sicuro di un indice generato manualmente equivalente.
Ma se invece si ha una sorta di app web - e in particolare una scritta in PHP o ASP o ASP.NET o una lingua simile in cui i file dell'applicazione sono archiviati nella radice del documento mescolati con il media - allora il l'indice generato automaticamente può fornire collegamenti a file che non intendi rendere pubblici. Questo è ancora più vero se hai anche dei file "include". E in tal caso, questo indice automatico potrebbe facilitare la ricerca di file che potrebbero portare a una vulnerabilità.
Si noti che l'indice stesso è non una vulnerabilità ed è non un rischio per la sicurezza di per sé. Invece, potrebbe aiutare a localizzare e sfruttare qualche vulnerabilità di sicurezza altri sul sito. Se non si dispone di tali vulnerabilità, l'indice non aggiunge alcun rischio da solo.
Inoltre, tutte le pratiche che potrebbero rendere pericoloso un indice di directory sono, a loro volta, pratiche errate categoricamente e non sono rese sicure semplicemente rimuovendo la direttiva index.
Questo include in particolare l'inserimento di file di codice lato server nella root del documento. Per sicurezza, dovresti avere un file ( index.php
) all'interno della radice del documento e TUTTI gli altri file all'esterno. Il tuo file index.php
non dovrebbe contenere altro che codice di bootstrap che carica ed esegue la tua webapp, mentre la webapp gestisce tutto il routing degli URL indipendentemente dalla struttura del tuo filesystem. A parte questo, la root del documento dovrebbe solo contenere file statici che siano sicuri per chiunque possa visualizzarli.
Se vuoi consentire la navigazione dei file in quel modo, perché non configurare un file server? Hai usato l'applicazione web di tag, che differisce dalla semplice fornitura di alcuni PDF. In tal caso vorrei andare con quello che ha dichiarato Tyler1.
No. Questo non presenta alcuna vulnerabilità di sicurezza. È una cosa assolutamente ragionevole da fare.
Assicurati che ogni file in quella directory sia in realtà destinato a essere reso disponibile al pubblico. Non mettere nessun file che vuoi tenere segreto sotto quella directory. (Ma di solito, dovresti evitare di mettere tali file ovunque nella tua web root, quindi probabilmente non ti sto dicendo niente di troppo nuovo.)
Sebbene probabilmente non vi siano problemi nel mostrare l'elenco di file in quella particolare posizione, il rischio principale che si incontra è quando il codice passa il nome della cartella come parametro, possibilmente dall'input dell'utente.
A quel punto, devi essere molto attento a filtrare il parametro della cartella per consentire solo le cartelle approvate, oppure un utente può specificare altre cartelle come / etc o il codice sorgente dell'app Web e leggere tutto tipi di dati sensibili come le password.
È meglio nasconderlo usando htaccess e visualizzare i file nella pagina html.
Options -Indexes
Le perdite di informazioni possono essere pericolose. alcuni esempi: -
maggiori informazioni: link
Leggi altre domande sui tag webserver web-application