Archivos Zip , GZip , y probablemente otros, incluyen información sobre el archivo contenido, incluido el tamaño sin comprimir del archivo. Sin embargo, al extraer estos archivos, el número carece de significado ya que los datos reales pueden ser mucho más grandes (por ejemplo, reportados como 1 byte, pero en realidad 10GB ).
Dado que la descompresión de un archivo .zip
grande podría hacer que un sistema DoS use todos los recursos, necesitaría algún tipo de comprobación para evitar la extracción de un archivo que pudiera dañar el servidor. Un método sería limitar el tamaño permitido a X GB. Si el tamaño indicado de un archivo es mayor que eso, salga temprano. Sin embargo, si el tamaño es incorrecto, deberías descomprimir hasta ese tamaño antes de salir.
Una alternativa potencial es comenzar a descomprimir, y tan pronto como el tamaño real sea mayor que el indicado (tal vez con un margen de error), salir.
¿Hay casos legítimos en los que el tamaño indicado de un archivo comprimido en un archivo (zip, gzip u otros) sea incorrecto? ¿Hay algún software popular que produzca tales archivos rotos?