【发布时间】:2012-08-07 23:39:29
【问题描述】:
我想要一个用户有权上传到我的 IIS 服务器的文件类型白名单(我使用 IIS v7.5)。
我有什么选择?例如,为了在我的控制器中将特定操作的文件大小限制为 5MB,我将此部分添加到我的 webconfig:
<location path="home/fileupload">
<system.web>
<!-- maxRequestLength is in kilobytes (KB) -->
<httpRuntime maxRequestLength="5120" /> <!-- 5MB -->
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!-- maxAllowedContentLength is in bytes -->
<requestLimits maxAllowedContentLength="5242880"/> <!-- 5MB -->
</requestFiltering>
</security>
</system.webServer>
</location>
webconfig 中是否有设置允许文件类型白名单的选项?还是唯一的选择是在文件完全上传时验证代码中的文件类型?推荐的技术是什么?我如何确定 .docx、.pdf、.jpg 等文件确实是它们的样子?
【问题讨论】:
-
是否有理由不在客户端验证它?
-
因为不是所有的浏览器都支持这个功能,也因为一切都应该在服务器端进行验证!
-
@AlexandreJobin 您有多确定该文件是用户所说的内容?
-
@Jared 因为用户上传的文件将被其他人使用。可以肯定的是,对于我的需要,我的要求有点矫枉过正。但是因为我必须制作一个模块来管理上传,所以我对自己说,我会花时间在第一时间把它做好,这个模块对我们所有的项目都有好处。如果 .exe 文件被重命名为 .docx 或 .zip 文件并且有人试图打开它会怎样?会不会很危险?我不知道,我试图确保一切安全:)
标签: asp.net asp.net-mvc asp.net-mvc-3 iis file-upload