作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要一个用户有权上传到我的 IIS 服务器的文件类型白名单(我使用的是 IIS v7.5)。
我有哪些选择?例如,为了将 Controller 中特定操作的文件大小限制为 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>
最佳答案
由于您想要服务器端,您可以使用文件 mime 类型。
THIS post 显示了如何根据文件内容(而不是扩展名)确定 MIME 类型。
如果您确实想将输入限制为特定文件扩展名,您可以简单地根据您想要接受的内容检查输入名称。如果通过,您可以在我链接的帖子中对库进行外部参照,以确保用户不只是更改您的文件扩展名。
这样做可以很好地确定该文件是您想要接受的文件!
编辑:基于迄今为止的评论......
根据您所说的,您正在寻找这种方法应该非常适合您。我的建议是,如果您只是想将其限制在其中一个评论中列出的文件类型……对文件扩展名进行简单检查。如果这是有效的,则将文件传递给 urlmon.dll
链接中列出。确保它不会作为无效类型返回....aka Executable/java/zip/etc。如果它不是无效类型,那么您将非常确定它是一个安全文件!
最后,通读该帖子的评论,它看起来像 urlmon.dll
可能隐式支持您想要的所有文件类型,这将消除检查它不是可执行文件或类似性质的需要,但您需要确认 doc/docx/xsl/xslx 确实返回有效的 mime 类型.
关于asp.net - 如何在 IIS 上限制/验证文件上传文件类型服务器端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11905561/
我是一名优秀的程序员,十分优秀!