0

我们知道,如果我们创建一个简单的记事本文件并将扩展名更改为 jpeg,它会将文本文件转换为 jpeg 文件。记事本文件中可能存在一些恶意程序。1.我想检查这种类型的图像文件我将如何做。2.有什么技巧可以让我找到这种类型的转换文件

使用 .net c#,asp.net,vb.net

4

1 回答 1

3

文件扩展名与其内容无关,它只是预处理文件的前几位以查看它是什么的问题。(然后,如果您可以从中确定类型,则可以继续使用该文件的解析代理)。

例如:

  • 图像文件可以ÿØÿà[NUL][DLE]JFIF作为它们的起始位开始。
  • PDF 可以以%PDF-
  • 压缩文件可以以 开头PKRar!或根据压缩算法的其他变体。

我能说的最好的事情是尝试通过System.Drawing.Image. 如果它实际上是图像,则解析器不会阻塞它。如果不是,您会得到某种异常,并且您知道它不是图像,或者是格式错误(有害)。

顺便说一句(因为这有点困扰我)说“我们知道,如果我们创建一个简单的记事本文件并将扩展名更改为 jpeg,它会将文本文件转换为 jpeg 文件”并不完全正确。您所做的只是指定打开文件的默认应用程序。一个名为 的文本文件.jpg.png甚至.xyz仍然是一个文本文件,只是不再使用记事本(或您的默认值)打开它。

于 2013-07-24T13:56:03.527 回答