gpt4 book ai didi

asp.net - 如何在 IIS 上限制/验证文件上传文件类型服务器端

转载 作者:行者123 更新时间:2023-12-04 15:25:02 24 4
gpt4 key购买 nike

我想要一个用户有权上传到我的 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>

webconfig 中是否有设置允许文件类型白名单的选项?还是唯一的选择是在文件完全上传后验证代码中的文件类型?推荐的技术是什么?我如何确定 .docx、.pdf、.jpg 等文件是真的?

最佳答案

由于您想要服务器端,您可以使用文件 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com