2011-05-30 62 views
2

我正在公開允許第三方上傳文件的WCF服務。由於這是第一階段,因此至今尚未公開哪些文件,但對於第二階段,我可能不得不提高安全性。驗證上傳文件類型的標準方式

在C#中驗證文件首先不是一個exe文件,並且文件內容與擴展名相匹配嗎?

我已經登錄,人們已經上傳的文件,字節的第一屈指可數,而到目前爲止,已經提出了這樣一些信息,

pdf 25 50 44 46 2D 31 2E 
jpg FF D8 FF E0 00 10 4A 46 49 46 00 01 
doc D0 CF 11 E0 A1 B1 1A E1 00 00 00 00 

等它是固定字節數確定它是什麼文件類型?還有一個這類數據的列表。

我是否需要將上述收集的數據和自己的C#代碼檢查文件,或者是否存在現有的庫或代碼示例來執行我​​所追求的內容?

回答

2

有一個.exe文件格式的快速概述here。該文件的前兩個字節將是ASCII字符「MZ」。

至於其他文件格式 - 您需要根據需要研究這些格式 - 大多數文件格式都包含一個標題,其中包含有助於識別的所謂「魔術字節」 - 儘管這不能保證文件是合法的。