Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/05/2015, 23:14
flashtrix
 
Fecha de Ingreso: noviembre-2004
Mensajes: 249
Antigüedad: 19 años, 5 meses
Puntos: 1
validar contenido del fichero de la imagen al subirla

hola nuevamente

tengo este script que baje de una web el cual es un formulario para subir imágenes al servidor con el famoso botón examinar


Código HTML:
Ver original
  1. <form action="upload.php" method="post" enctype="multipart/form-data">
  2.   <input name="archivo" type="file" size="35" />
  3.   <input name="enviar" type="submit" value="Upload File" />
  4.   <input name="action" type="hidden" value="upload" />    
  5. </form>

y este es el Script PHP que hace el resto..

Código PHP:
$status "";
if (
$_POST["action"] == "upload") {
    
// obtenemos los datos del archivo
    
$tamano $_FILES["archivo"]['size'];
    
$tipo $_FILES["archivo"]['type'];
    
$archivo $_FILES["archivo"]['name'];
    
$prefijo substr(md5(uniqid(rand())),0,6);
   
    if (
$archivo != "" || $tipo == "image/gif" || $tipo == "image/jpeg" || $tipo == "image/jpg") {
        
// guardamos el archivo a la carpeta files
        
$destino =  "files/".$prefijo."_".$archivo;
        if (
copy($_FILES['archivo']['tmp_name'],$destino)) {
            
$status "Archivo subido: <b>".$archivo."</b>";
        } else {
            
$status "Error al subir el archivo";
        }
    } else {
        
$status "Error al subir archivo";
    }

pero existe un problema y es que existen personas inescrupulosas que crean archivos php o shell con extensiones de imagen (archivos con extensión de imagen que son archivos con códigos maliciosos ocultos) para burlar dicho script el cual es muy vulnerable...

como hago para evitar que puedan subir este tipo de archivos escondidos en imágenes...


Estuve leyendo y es algo como validar en contenido del fichero de la imagen
utilizando las funciones de PHP getimagesize() y Content-type()


Pero no doy como agregarle dichas funciones al código

espero me puedan ayudar

graciass