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