我的应用程序允许用户将文件上传到从Web应用程序提供的目录。在大多数用例中,我们使用S3,但我们也为那些想要使用自己的托管的客户提供了一种模式,我们只需将文件直接写入硬盘。
我们有一个允许的文件类型的白名单,我们会阻止应用程序接受.asp,.aspx,.asa等文件。但是我担心如果找到一种方法,攻击者可以上传.aspx文件并控制Web服务器进程。
在调查此问题时,我发现我的MVC应用程序在尝试访问此目录中不存在的路径时报告异常。我次要担心的是,由于这个原因,我们可能会看到不太理想的表现;当然,使用MVC评估路径并使用静态内容处理程序会更快吗?
我想也许我会问两个有相同答案的问题:
答案 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文件。