2011-02-02 38 views
1

我有一個簡單的問題:在我開發的系統中,用戶可以向我們發送zip文件,我需要過濾它的內容。 (阻止應用程序和惡意腳本)如何查找在zip文件中發送給我的沒有擴展名的文件的mimetype?

通過擴展阻止內部文件很容易,但沒有擴展名的文件非常常見,擴展名也不是關於文件內容的最可靠來源。

我已經嘗試過使用python magic,但它需要一些我的服務器不支持的包,服務器不會幫助我。 哦!我沒有選擇將系統更改爲另一臺服務器。所以,在這種情況下,對我來說沒有蟒蛇魔法。

有沒有人有一個想法,如何通過它的頭來檢查文件類型?

回答

1

不是一個直接的答案,但是/ etc/magic的格式並不那麼複雜,所以如果它只需要檢測幾個文件類型,或許它最容易編寫自己的檢測程序。

# Java 

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

我們得到:

data = open(path).read() 
if data[0:4] == '\xca\xfe\xba\xbe': 
    minetype = 'application/x-java-applet' 
+1

你真的只需要讀取4個字節,所以你可以只是做`數據= yourfile.open(路徑).read(4)',而不是試圖解壓縮並完整讀取文件。 – 2011-02-02 12:54:55

相關問題