L’immagine a fianco mostra un tipico esempio di come non vada scritto il software di gestione di un sito.
L’errore principale in questo caso è stato quello di realizzare un software che accetta un file come parametro passato via HTTP.
Ipotizzando che la lettura di un file passato come parametro sia una necessità, è comunque possibile evitare il directory traversal.
La funzione realpath() permette di convertire i path relativi in path assoluti e, quindi, sanificare le stringhe prima di passarle alle funzioni di apertura file: utilizzando il valore ritornato da realpath('.')
è possibile eseguire dei controlli sulla stringa da sanificare per evitare che vengano caricati file in posizioni non previste.
Lascia un commento