阻止用户上载给定文件夹中的可执行文件或脚本

时间:2014-04-09 09:11:22

标签: asp.net

在我的网站上,用户可以在给定文件夹中上传静态文件(通常是图片)。

我刚看到Scott Hanselman的这篇文章: http://www.hanselman.com/blog/BackToBasicsWhenAllowingUserUploadsDontAllowUploadsToExecuteCode.aspx

他建议在web.config文件中添加它,以确保在该文件夹中不能执行任何操作:

<location path="upload">
    <system.webServer>
        <handlers accessPolicy="Read" />
    </system.webServer>
</location>

这似乎有效。作为测试,我将.aspx文件放在相关文件夹中。如果我尝试访问它,我仍然可以访问图片时出现“访问被拒绝”错误消息。

我不明白为什么上传器仍然有效?是否需要写入权限才能将图片保存在文件夹中?

1 个答案:

答案 0 :(得分:1)

有什么不清楚的? 这是汉塞尔曼所说的:

  

用户上传文件夹中任意代码执行的修补程序

     

修复了什么?好吧,当然不允许有人上传   文件扩展名为.aspx或.php,也可以标记   整个上传文件夹不可执行!这是更新的   web.config中:

请注意粗体文字:但也要将整个上传文件夹标记为不可执行....并且实际上

  <handlers accessPolicy="Read" />

这意味着无法执行.php,.aspx等页面。