【发布时间】:2015-05-24 23:55:43
【问题描述】:
有可能将 .exe 文件重命名为 .txt 文件以绕过任何文件类型验证。我正在寻找一种方法来通过读取文件的标题而不使用像 urlmon.dll 这样的 dll 来找出实际的文件类型。
MimeMapping.GetMimeMapping 并不能解决问题,它只是根据扩展名提取 mime 类型。
是否有一本字典说明了哪些字节组合至少代表了非常常见的文件类型,例如 txt、doc、docx、pdf、xls 或 xlsx、exe 等?
【问题讨论】:
-
您知道您要查找的文件类型吗?只为一种文件类型寻找一个唯一的标头签名要比构建一个通用库来猜测它们要容易得多。您的列表中特别存在的一个问题是 docx 和 xlsx 在粗略检查时似乎都是 zip 文件,需要更深入的分析才能真正弄清楚。即使可行,这也可能会变得昂贵。
-
@DanField - 我现在正在寻找 txt、doc、docx、pdf、xls 和 xlsx。
-
@DanField - 在项目的后期我可能需要支持一些新类型。但我提到的那些是最低限度的。
标签: c# .net mime-types