|
8
|
| Fábio Antunes · 技术社区 · 12 年前 |
|
1
20
更新:@GetoX已经获取了这段代码,并将其封装在一个用于.net核心的NuGet包中!看下面,欢呼!!
我使用Winista和URLMon的混合体来检测 这个 上传文件的真实格式。。 Winista MIME检测 假设有人用jpg扩展名重命名了一个exe,你仍然可以使用二进制分析来确定“真实”的文件格式。它不检测swf或flv,但几乎可以检测其他所有已知的格式+您可以获得一个十六进制编辑器,并添加更多可以检测的文件。 文件魔术 Winista使用XML文件“MIME-type.XML”检测真正的MIME类型,该文件包含有关文件类型和用于识别内容类型的签名的信息。例如:
当Winista无法检测到真实的文件格式时,我又回到了URLMon方法:
从Winista方法的内部来看,我在这里回到URLMon:
Wayback Machine link to the Winista utility from netomatix .AFAIK他们在开源Nutch爬虫系统中发现了一些“mime阅读器实用程序类”,并在2000年代初进行了C#重写。 我已经使用Winista和URLMon主持了我的MimeDetect项目。请使用Hex编辑器提供新的文件类型: https://github.com/MeaningOfLights/MimeDetect 您也可以使用注册表方法或 .Net 4.5 method 中提到 this post 与Paul Zahra联系在一起,但Winista是最好的IMHO。 享受了解系统中文件的乐趣 是 他们声称是什么 而不是 laden with malware ! 更新: 对于桌面应用程序,您可能会发现WindowsAPICodePack的工作效果更好:
|
|
|
2
3
经过几个小时的寻找弹性解决方案。我采用了@JeremyThompson解决方案,将其调整为frameworks.net core/.net 4.5,并将其放入 nuget package .
|
|
|
3
2
有多种可能的解决方案 in this SO post 这至少会给你一些思考的食物。 似乎唯一真正的方法是以二进制形式读取它,然后进行比较,无论MIME类型是以某种方式声明为硬编码的,还是依赖于机器自己可用的MIME类型/注册表。 |
|
|
4
2
刚刚找到 FileSignatures 。它实际上是一个很好的替代方案,在Linux目标应用程序上也能很好地运行。 上下文
再挖掘一点,我发现这个项目很好: 文件签名 裸体 here 。它的可扩展性也很强,因此您可以从filesignatures.net中获取所需的所有类型,并创建自己的类型模型。 用法您可以检查任何定义的类型
或者根据匹配的文件类型使用它带来的一些元数据
可扩展性
您可以定义从继承的任意数量的类型
中的更多详细信息 project's Github |
|
|
sAnS · 文件十六进制值检查不起作用 7 年前 |
|
|
Jan Testowy · 与Spring安全性相关的MIME类型错误 7 年前 |
|
Wayne Kaskie · How to address error“未在“script name”处加载脚本,因为在给定“X-Content-Type:nosniff”时不允许使用非脚本MIME类型 7 年前 |
|
|
Silent · 蔚蓝色的mp4上传失败 8 年前 |