¿Cómo asegurar el código PHP para cargar imágenes de avatar?

-2

Puedo omitir un proceso de verificación de imagen de carga de avatar y cargar un archivo PHP o cualquier otra extensión que vincule una imagen jpeg válida.

Este es el código:

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
                );
            }

Por ejemplo:

  1. descarga image1.jpg

  2. como puede ver si abre el archivo image1.jpg en el bloc de notas, en este caso oculta el código PHP ( phpinfo(); .

  3. renombra image1.jpg a image1.php, e intenta subirlo en la carga del avatar formar. Pasa la verificación.

¿Cómo asegurar este código?

    
pregunta Ihebhamad 06.07.2018 - 10:24
fuente

1 respuesta

1

Ya que no sabemos qué se está haciendo el procesamiento, no podemos comentar sobre qué tan seguro es esto.

La única forma segura de manejar las cargas de imágenes es:

1) nunca use el nombre / ruta suministrados por el usuario (pero puede almacenarlo / incluirlo en la salida si se escapó correctamente, pero nunca escribirlo nuevamente en su sistema de archivos)

2) almacene el contenido fuera de la raíz del documento y medie todos los accesos posteriores mediante un script de control

3) en la carga, extraiga y cree el ráster de imagen del archivo y vuelva a codificarlo en el archivo que guardará

    
respondido por el symcbean 06.07.2018 - 13:38
fuente

Lea otras preguntas en las etiquetas