Ver Mensaje Individual
  #14 (permalink)  
Antiguo 27/02/2012, 16:57
bray
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 13 años, 3 meses
Puntos: 13
Respuesta: Vulnerabilidad de mi UPLOAD

Mi consejo, no permitas que los usuarios nombren archivos en el servidor, me explico

si un usuario PEPITO quiere subir una foto FotoPepito.php.jpg tu coges esa foto tomas el nombre y lo almacenas en una base de datos y en su lugar das al archivo físico del servidor un nombre tipo 00000000001.jpg y le eliminas los permisos de ejecución mediante chmod(). de esta forma el servidor como mucho , mostraría el código php del archivo por pantalla pero no llegaría a ejecutarlo

por otro lado aun comprobado el tipo MIME del archivo, un usuario malintencionado podría engañar al servidor, enviando una cabecera MIME correcta en un archivo que no es imagen , para evitar esto puedes usar la función getImageSize() de la biblioteca GD que devolverá FALSE si el archivo no es una imagen y por lo tanto podrás saber, mas allá de la extensión y el MIME si el archivo es un archivo de imagen válido.

Ten en cuenta que siempre habrá una trampa y se podra engañar al sistema, asi que cuanto menos permitas hacer a los usuarios mejor, por eso mi consejo de asignar un nombre genérico a las imagenes y utilizar el nombre proporcionado por el usuario como titulo, almacenándolo en la base de datos.

Muchas de estas cosas creo que te las han dicho antes, de todas formas espero que te sean utiles.


un saludo.