Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/10/2015, 17:19
flashtrix
 
Fecha de Ingreso: noviembre-2004
Mensajes: 249
Antigüedad: 19 años, 5 meses
Puntos: 1
extensiones de imagen que sean seguras

tengo un inconveniente, el cual es que tengo un formulario en el que suben y envían una imagen en los formatos de imagen al servidor

mi código verifica que sean imagenes, incluso en formulario valida que sean con la extensión especifica (jpg, gif, png)

pero existen personas inescrupulosas que envían archivos "camuflados" en .dat. exe o bat u otra extensión la cual transforman no se como en una imagen pero esta no es na imagen en si si no un archivo de estos la cual engañan al script.. he intentado colocarlo en el php que ejecuta luego todo.. pero no me sale no se como hacerlo, pensé ir jugando con el peso de la imagen la cual las imágenes pesan considerablemente comparándolas con estos ficheros... PERO NO ME RESULTA, posteo la parte del código que uso....

Código PHP:
$tamanomax=100;
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" || $tamano >= $tamanomax){
        
// guardamos el archivo a la carpeta files
        
$destino =  "files/".$prefijo."_".$archivo;
        if (
copy($_FILES['archivo']['tmp_name'],$destino)) {
           echo 
"<b>Envio Exitoso,</b><br><br>Estamos procesando su información,<br>Le enviaremos a su cuenta de correo:<br><b>$_POST[email],</b><br>todo el procedimiento a seguir.<br>No olvide revisar su buzón de Correo no deseado o spam <br>si nota que el mensaje no le llega instantaneamente.<br><br><a href=index.html target=_parent>Regresar</a>";
 
//=============================================================================
$consulta="Insert into $tabla values ('$id','$nombres','$tipoidentificacion','$identificacion','$telefono','$email','$consignacion' ,'$destino','$clave','$estado','$fecha','$boundary','$ip','$consecutivo')";
$resultado=mysql_query($consulta);
if(
$resultado==0){mysql_close();
exit;
 }else{
       
$status "Solo se permiten archivos de imagen (jpg o gif)";
        }
    } else {
        
$status "Error al subir archivo";
    }

espero me ayuden.... POSDATA mi Nivel php es Muy Básico