我想阻止用户通过浏览器访问某种类型的文件。例如,IIS 服务器默认阻止对 .config 和 .vb 文件的访问,给出错误消息“未提供您请求的页面类型,因为它已被明确禁止”,并且我想添加其他文件类型到此行为。
我可以在应用程序的 web.config 文件中添加一些内容吗?我宁愿不通过使用阻止目录访问来处理它<authorization>
元素。
在 IIS 7+ 中,可以在应用程序级别完成请求过滤。在 web.config 中添加以下代码:
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<add fileExtension=".vbs" allowed="false" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
对于 IIS 6,上述方法不起作用,但您可以模仿 .cs 文件等页面存在的默认阻止行为,尽管您可能需要在服务器端进行更改。首先,将以下内容添加到应用程序的 web.config 中:
<system.web>
<httpHandlers>
<add path="*.vbs" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
</httpHandlers>
</system.web>
如果 asp.net 设置为处理该文件类型(例如 .cs),那么您就完成了。但是,如果您要阻止的文件类型是由 IIS 而不是 asp.net(如 .vbs)处理的,则这还不够。您必须在 IIS 管理器中进行更改才能映射文件扩展名,如下所示here http://blog.tylerholmes.com/2008/10/stop-aspnet-from-serving-specific-file.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)