Programming应用中很多时候需要允许用户自行上传图片之类的文件,一般我们会对文件后缀做处理来防止用户上传恶意程序。

为了更进一步确定用户上传的文件不会被运行,我们可以对 IIS 进行设置,禁止IIS执行用户上传目录下面的文件:

在 web.config 中的 configuration 节点,加入以下配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  <location path="files">
    <system.webServer>
      <handlers>
        <clear />
        <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="Either" requireAccess="Read" />
      </handlers>
      <staticContent>
        <mimeMap fileExtension=".*" mimeType="application/octet-stream" />
      </staticContent>
    </system.webServer>
  </location>

这会清空 files 目录下所有的 http handler, 只留一个 StaticFile 处理静态文件。