¿Cómo puedo encontrar el mimetipo de un archivo sin extensión que se me envíe dentro de un archivo zip?

StackOverflow https://stackoverflow.com/questions/4874333

  •  28-10-2019
  •  | 
  •  

Pregunta

Tengo un problema simple: en un sistema estoy desarrollando, el usuario puede enviarnos ZipFiles y necesito filtrar el contenido de él. (Bloquear aplicaciones y scripts maliciosos)

Bloquear los archivos internos por extensión es fácil, pero los archivos sin extensión son muy comunes y la extensión no es la fuente más confiable del contenido del archivo.

Ya he intentado usar Python Magic, pero requiere algunos paquetes que mi servidor no admite y el servidor no me va a ayudar. ¡Vaya! No tengo la opción de cambiar el sistema a otro servidor. Entonces, no hay magia de Python para mí en este caso.

¿Alguien tiene una idea de cómo verificar el tipo de archivo por su encabezado?

¿Fue útil?

Solución

No es una respuesta directa, pero el formato de /etc /magia no es tan complicado, por lo que si es solo unos pocos filetipos que necesita detectar, quizás sea más fácil escribir su propia rutina de detección.

# Java

0       beshort         0xcafe
>2      beshort         0xbabe          application/x-java-applet

obtenemos:

data = open(path).read()
if data[0:4] == '\xca\xfe\xba\xbe':
    minetype = 'application/x-java-applet'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top