Quali precauzioni dovrebbero essere prese quando il file visualizzato da una pagina web è specificato dal valore GET

3

Il mio sito web mostra alcuni file in base al valore ottenuto nell'URL. Ad esempio http://www.mysit.com/navigate.php?d=firstpage.html La cosa è navigate.php sa in quale cartella cercare e non è nella directory principale web. Ci sono delle precauzioni che dovrei prendere? Ad esempio, quale effetto ha . o .. su un URL? Se un utente malintenzionato ha inserito http://www.mysit.com/navigate.php?d=../topsecret , potrebbe ottenere l'accesso non autorizzato?

    
posta Celeritas 08.05.2013 - 22:09
fonte

2 risposte

4

Assicurati di aggiungere filtri aggiuntivi su di esso per assicurarti che non provi cose del genere. Personalmente, come minimo, tenterei di analizzare e riformare l'input e assicurarmi che non si verifichino operazioni come le modifiche alle directory.

Un'opzione migliore sarebbe quella di memorizzare i nomi di file in un DB e passare un semplice token che potrebbe essere usato per cercare il nome del file da usare. Questo potrebbe quindi essere filtrato per qualsiasi input che non si adatta a ciò che è necessario per i token. Inoltre, potrebbe consentire al sito di funzionare senza dover aggiornare le informazioni GET, a meno che non lo desideri specificamente per la funzionalità di collegamento.

    
risposta data 08.05.2013 - 22:12
fonte
1

Per rispondere alla tua domanda, tutto dipende da come il tuo sito tratta il parametro di input. Se, come accennato, è possibile cambiare la directory usando l'input, allora sì.

I parametri GET finiscono semplicemente come stringhe quando arriva al php; Non stai inviando comandi speciali come faresti in un'interfaccia a riga di comando (a meno che non sia codificato in questo modo nel php).

    
risposta data 09.05.2013 - 06:01
fonte

Leggi altre domande sui tag