强大的方法来限制可以上传ASP.NET MVC的文件类型

时间:2014-02-02 20:17:46

标签: c# validation file-upload

我们正在开发一个MVC应用程序,我们需要允许用户上传这些文件类型:

DOC(X),XLS(X),PPT(X),文本,PDF,CSV,JPG和PNG。

必须禁止所有其他文件类型。

显然,人们可以将可执行文件重命名为DOCX并上传,因此我们会进行一些初步的检查。例如,我们检查文件是否不以MZ字节签名等开始。

如果他们上传PNG或JPG,我们会检查是否可以使用.NET Bitmap类读取它们,并且它们的尺寸符合我们的参数。

然而,人们非常聪明(而且是狡猾的)。我们需要一个强大的解决方案,允许有效的文件类型,而不会上传可执行文件,批处理文件等。

例如,人们可以压缩EXE并尝试将其作为.DOCX文件上传。因为DOCX文件是压缩的(并且以PK签名开头),所以它变得棘手。

此外,我们不希望在我们的服务器上安装MS OFfice,因此使用自动化测试上传不是一种选择。

如果没有阅读所有不同文件格式的所有二进制规范,那么处理这种情况的最佳方法是什么?

0 个答案:

没有答案