如何让IIS阻止文件上载目录中的脚本执行?

时间:2015-08-18 16:56:10

标签: iis iis-8.5

我的应用程序允许用户将文件上传到从Web应用程序提供的目录。在大多数用例中,我们使用S3,但我们也为那些想要使用自己的托管的客户提供了一种模式,我们只需将文件直接写入硬盘。

我们有一个允许的文件类型的白名单,我们会阻止应用程序接受.asp,.aspx,.asa等文件。但是我担心如果找到一种方法,攻击者可以上传.aspx文件并控制Web服务器进程。

在调查此问题时,我发现我的MVC应用程序在尝试访问此目录中不存在的路径时报告异常。我次要担心的是,由于这个原因,我们可能会看到不太理想的表现;当然,使用MVC评估路径并使用静态内容处理程序会更快吗?

我想也许我会问两个有相同答案的问题:

  • 如何在返回404之前阻止.gif文件通过我的ASP.NET MVC应用程序传递?
  • 如何防止目录中的所有内容被ASP.NET执行?

1 个答案:

答案 0 :(得分:1)

我发现执行此操作的方法是清除所有处理程序,然后重新添加静态内容处理程序。我在我的uploads目录中添加了一个web.config文件,其中包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <clear />
            <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
        </handlers>
    </system.webServer>
</configuration>

因此无法在此目录中执行.ASPX文件。