Come consentire il caricamento sicuro di file eseguibili [duplicato]

8

Ho bisogno di aiuto per il caricamento dei file. In uno dei miei progetti il cliente vuole consentire un upload di file senza restrizioni sul tipo di file. Ma temo che gli utenti possano caricare file eseguibili come .php, .aspx, .dll, .so e quindi possono facilmente eseguire "l'esecuzione di codice in modalità remota" o "attacco di script".

Come risolvere questo problema?

    
posta Ravi 05.10.2016 - 09:27
fonte

3 risposte

21

La soluzione più comune per questo tipo di problema è assicurarsi che il file memorizzato non sia accessibile dal server web.

Un modo semplice per farlo è archiviare il file in un database e non salvarlo mai sul disco. Devi però fare attenzione a non creare un qualche tipo di XSS: non permettere che il file sia collegato direttamente o, idealmente, scaricato. Se è necessario rendere disponibile il file tramite l'interfaccia Web, utilizzare l'intestazione content-disposition "attachment" per assicurarsi che il browser non tenti di interpretare il file.

    
risposta data 05.10.2016 - 09:37
fonte
2

Utilizza un framework sano che include il routing URL appropriato. Invece del server web che indirizza le richieste ai file eseguibili a seconda dell'URL, reindirizza tutte richieste al punto di ingresso del framework e lascia che gestisca la richiesta, in genere basata su una rotta verso il mapping del controllore.

Questo significa che qualsiasi file caricato è sicuro in quanto non dovrebbe esserci modo di eseguirlo.

    
risposta data 05.10.2016 - 20:29
fonte
0

Memorizzalo in un database speciale o in qualsiasi ambiente non eccedente come menzionato da Stephene. Se solo le persone autorizzate devono caricare un file, puoi applicare tali restrizioni e aggiungere anche captcha per evitare i bot.

    
risposta data 05.10.2016 - 13:17
fonte

Leggi altre domande sui tag