我知道默认情况下,IIS不会向公众提供App_Data或bin文件夹中的内容。
如何设置一个以上的文件夹不向公众提供服务?
正确的做法是使用这个:
<configuration>
<system.webServer>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="My_Directory" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
这样可以让您仍然可以从 IUSR
帐户访问那里的文件,但阻止直接填充文件请求。
请注意,这将阻止该目录中以及任何子目录中的文件,无论该目录出现在哪个位置 - 即使它本身是其他东西的子目录。
hiddenSegments
是解决问题的正确工具。进入 IIS
然后进入 site
,在 Features
中找到 Request Filtering
(必须在 Server Manager
中安装),现在添加您想要防止访问的目录名称,或者 URL 的任何部分。这种方法需要在站点中使用唯一的 URL 或目录名称,否则 URL 中的任何级别中发生的该段的其他出现都将导致该请求被阻止:
http://www.iis.net/configreference/system.webserver/security/requestfiltering/hiddensegments
从该文件夹中删除IIS_IUSR权限。
我认为它通常在“Internet Guest Account”下面。