Block upload of .gif images renamed with .jpg or .png in PHP

3

I have an upload system where the user can only upload images with .jpg or .png extension. Here's part of the code:

$imagemNomeAntes = $_FILES["the_image"]["name"];
$imagemNomeAntesExt = basename($imagemNomeAntes);
$imagemNomeExt = pathinfo($imagemNomeAntesExt, PATHINFO_EXTENSION);
$permitidasExt = array("jpg", "jpeg", "png");

if(!in_array($imagemNomeExt, $permitidasExt)) {
    echo "Somente imagens com extensão jpg, jpeg ou png são aceitas!";
} else {
    $imagemNomeTmp = $_FILES["the_image"]["tmp_name"];
    $imagemNomeDir = "../photos";

    $imagemNomeEnd = md5($imagemNomeTmp).$imagemNomeExt;
    move_uploaded_file($imagemNomeTmp, ($imagemNomeDir.$imagemNomeEnd));

    imagedestroy($imagemNomeTmp);
}

The system works perfectly, however, if I go in an image with .gif extension and rename it to .jpg or .png the upload happens and the image gets animated. How can I prevent this?

    
asked by anonymous 09.07.2015 / 00:25

1 answer

4

Test as follows (present in the PHP documentation)

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
    echo 'Imagem não é um gif';
}
?>

Documentation link: Documentation

    
09.07.2015 / 00:28