Upload sicuro: alcuni accorgimenti per la sicurezza dei form di upload

Pubblicato il 10 Ottobre 2011

Quando pensiamo alla sicurezza nelle applicazioni web, pensiamo subito ad una corretta configurazione del php.ini, alla validazione dei dati inseriti in input in un form, alla prevenzione dell’SQL Injection ecc.

Un aspetto a cui si deve prestare sempre grande attenzione è quello della sicurezza dei form di upload file. Ormai, in quasi tutti i tipi di applicazione, è richiesto almeno un form di upload:

– per caricare l’avatar dell’utente
– per allegare un file ad un post da pubblicare in bacheca
– per hostare un file o per trasmetterlo ad un contatto

I form di upload sono necessari e bisogna tenerli sicuri per evitare spiacevoli sorprese. Di seguito ti elenco alcuni punti che devi tenere sempre in considerazione per la sicurezza dei tuoi form di upload:

01) Controllare il tipo di file

Devi sempre controllare il tipo di file uploadato, sia lato client che server. Se, il tuo, è un form di upload per un avatar utente è ovvio che i tipi di file accettati saranno soltanto immagini GIF, PNG o JPG. Impedisci l’upload di qualsiasi altro tipo di file.

02) Specificare la cartella di destinazione

Il file deve essere uploadato in una cartella temporanea diversa dalla root del tuo sito, cartella, alla quale non si può accedere direttamente. Si eseguono i controlli opportuni sul file, dopodichè, lo si sposta nella cartella “definitiva” che contiene i files uploadati.

03) Il nome del file deve essere casuale

Il file uploadato deve essere rinominato in modo casuale utilizzando, magari, qualche algoritmo di crittografia. Il risultato deve essere che, il nome del file, non deve più essere noto a chi ha uploadato il file. Per la parte client, è opportuno caricare il percorso del file dinamicamente da un DB.

Nella cartella dove si uploadano i files, si può inserire un file htaccess per impedire l’esecuzione di file PHP (o altro tipo di file). Il codice da inserire nell’htaccess è il seguente:

<files *.php>
order deny,allow
deny from all
</files>

Tu hai altri consigli da aggiungere per rendere i form di upload più sicuri?

Condividi il post con i tuoi amici o colleghi
emawebdesign
Autore: emawebdesign

Full Stack Developer, SEO Specialist, esperto della trasformazione digitale con oltre 20 anni di esperienza.

Pubblicato in: