Ho creato (usando a script e un po 'di aiuto da Stack e aiuto da parte di amici, so molto poco di PHP) una semplice pagina per una pubblicazione locale senza scopo di lucro in cui le persone possono caricare le foto.Come posso proteggere uno script di caricamento dell'immagine PHP dagli exploit?
io non sono grande con la sicurezza (da una base di ignoranza, non intenzionale negligenza), ma ho preso le seguenti misure per proteggere questa pagina:
• script PHP è impostato per accettare solo .jpg , .png e .tif file per il caricamento;
• la sottocartella in cui salva il contenuto del modulo per disporre delle autorizzazioni impostate su 700 e la sottocartella in cui salva le foto caricate in modo che disponga delle autorizzazioni impostate su 700;
• secondo la documentazione, il mio ospite ha la seguente configurazione per garantire che solo i file .php eseguiti come .php:
<FilesMatch \.php$>
SetHandler php52-fcgi
</FilesMatch>
• Ho messo un file .htaccess nella relativa (principale e salvato il contenuto) cartelle:
RemoveHandler .php
RemoveHandler .inc
RemoveHandler .pl
RemoveHandler .cgi
RemoveHandler .py
RemoveHandler .fcgi
Durante la notte, però, qualcuno pensa che questa pagina di prova e sottoposti quello che sembra essere un messaggio di prova perfettamente benigna e piccole .jpg. Questa è una pagina di prova privata con un URL non intuitivo di cui solo io e altre tre persone conosciamo; nessuno degli altri ha inviato questo test.
Questo ovviamente mi ha preoccupato che ci sia qualcosa Hinky in corso, e sono preoccupato che io non so abbastanza di sicurezza per assicurarsi che la pagina è sicura.
C'è qualcosa di ovvio che mi manca?
il nome file fornito dall'utente (in '$ _FILES ['upload'] ['name']') non è affidabile e può essere facilmente modificato. Non controllare queste estensioni. Controlla il tipo mime se verifica se 'getimagesize()' restituisce un risultato valido. Se possibile, genera il tuo nome file. – MarcDefiant