Sebbene di per sé non sia sicuro al 100%, ti suggerisco di controllare il tipo MIME del file piuttosto che un'estensione usando exif_imagetype
. È un buon passo per aiutare a convalidare l'immagine.
Chiunque può inserire codice PHP dannoso in un file .gif, e con molti fcgi / fpm e routing, verrà analizzato da PHP se verrà caricato in una directory web e l'utente malintenzionato scorrerà su questa pagina.
Per aggirare questo problema, assicurati che i tuoi file non siano nel tuo webroot e, se stai usando qualche tipo di routing o di riscrittura di URL, disattiva PHP-FPM / mod_php per .gif|.jpg|.jpeg
ecc. Ciò ti aiuterà anche a lungo termine. A meno che non ci sia un 0day là fuori da qualche parte, il caricamento di un file non esegue un eval()
su di esso, quindi è necessario accedere direttamente al file perché sia dannoso.
Oltre a questo, ti suggerisco di eseguire array getimagesize ( string $filename [, array &$imageinfo ] )
sull'immagine. Se restituisce 0
, non è un'immagine valida. Non è necessario GD
perché funzioni.