Come posso trovare il mimetipo di un file senza estensione che mi viene inviato all'interno di un file zip?

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

  •  28-10-2019
  •  | 
  •  

Domanda

Ho un semplice problema: in un sistema sto sviluppando l'utente può inviarci zipfiles e devo filtrare il contenuto di esso. (Blocca applicazioni e script dannosi)

Per bloccare i file interni per estensione è facile, ma i file senza estensione sono molto comuni e l'estensione non è la fonte più affidabile sul contenuto del file.

Ho già provato a usare Python Magic, ma richiede alcuni pacchetti che il mio server non supporta e il server non mi aiuterà. Oh! Non ho la possibilità di cambiare il sistema su un altro server. Quindi, non c'è magia Python per me in questo caso.

Qualcuno ha un'idea di come controllare il tipo di file con l'intestazione?

È stato utile?

Soluzione

Non una risposta diretta, ma il formato di /etc /magia non è così complicato, quindi se sono solo pochi filetipi devi rilevare, forse è più facile scrivere la tua routine di rilevamento.

# Java

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

noi abbiamo:

data = open(path).read()
if data[0:4] == '\xca\xfe\xba\xbe':
    minetype = 'application/x-java-applet'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top