A ver, supongamos que yo creo un archivo con "codigo malicioso en PHP", lo guardo como imagen.jpg, lo subo a un servidor y trato de abrirlo con el navegador... que pasara?
a) El servidor "piensa" que se trata de una imagen (por la extension) y lo envia directo al navegador, quien no puede interpretar compresion, tipo, tamaño, etc. y muestra un mensaje de error.
b) El servidor tiene una configuracion extraña que hace que los archivos con extensiones .jpg sean interpretados por PHP y ejecuta el codigo malicioso... yo pregunto, quien en su sano juicio configuraria un servidor para comportarse asi?
Bueno, todo esto es solo un resumen para que la cuestion de seguridad no te vuelva paranoico y, hay mejores formas de verificar que el archivo es realmente una imagen.
Regresa al manual de GD y lee acerca de la funcion
getimagesize(), aunque los pasos a seguir son:
Código PHP:
Ver original// Extensiones de imagenes que deseas admitir
$extensiones = array('jpg', 'jpeg', 'gif', 'png');
// Extension real del archivo subido
$ext = strtolowr
(end(explode('.', $name))); // En minusculas para facilitar las cosas die("Esto no es una imagen >:-("); }
// La @ es para que no se muestre mensaje de error si:
// - El archivo NO existe
// - El archivo NO es una imagen valida
// Comparacion con triple signo igual (tipo de dato y valor)
if($imgData === false) {
die("Esto no es una imagen >:-("); }
// Aqui usas move_uploaded_file() o lo que prefieras