Come proteggere il codice PHP per caricare le immagini degli avatar?

-2

Posso evitare un processo di verifica delle immagini di caricamento dell'avatar e caricare un file PHP o qualsiasi altra estensione che leghi un'immagine jpeg valida.

Questo è il codice:

if ($image->valid()) {
            $mimeType = $image->mimeType();
            if ($mimeType !== 'image/jpeg' && $mimeType !== 'image/png') {
                return new DataResponse(
                    ['data' => ['message' => $this->l->t('Unknown filetype')]],
                    Http::STATUS_OK,
                    $headers
                );
            }

Ad esempio:

  1. scarica image1.jpg

  2. come puoi vedere se apri il file image1.jpg sul blocco note, in questo caso nasconde il codice PHP ( phpinfo(); .

  3. rinomina image1.jpg in image1.php e prova a caricarlo sul caricamento dell'avatar modulo. Passa la verifica.

Come proteggere questo codice?

    
posta Ihebhamad 06.07.2018 - 10:24
fonte

1 risposta

1

Poiché non sappiamo quale elaborazione venga eseguita, non possiamo commentare quanto è sicuro.

L'unico modo sicuro per gestire i caricamenti di immagini è:

1) non usare mai il nome / percorso fornito dall'utente (ma puoi memorizzarlo / includerlo in uscita se è debitamente escape, ma non scrivere mai questo al tuo filesystem)

2) archiviare il contenuto al di fuori della radice del documento e mediare tutti gli accessi successivi tramite uno script di controllo

3) al caricamento, estrai e crea l'immagine raster dal file e ricodifica questo nel file che conserverai

    
risposta data 06.07.2018 - 13:38
fonte

Leggi altre domande sui tag