繁体   English   中英

如何停止网站目录浏览但还允许使用默认文档

[英]How to stop directory browsing of a web site but also allow default document

当您尝试访问Web服务器上的目录时,您会收到403消息,而通常更希望获得404消息,因此您不会向黑客提供有关文件夹存在的线索。

我以为我找到了解决此问题的最终方法-通过将其添加到web.config system.webServer中:

<handlers>
  <add name="StopDirectoryBrowsing" path="*." resourceType="Directory" verb="*" type="System.Web.HttpNotFoundHandler" preCondition="integratedMode" />
</handlers>

当您尝试访问目录时,这将正确引发404。

但是可悲的是,它杀死了顶层的默认文档机制。

任何人都可以提出上述的一种变体,该变体允许默认文档工作,但仍保护子目录。

这实际上并不会更改返回的状态代码,但是您可以使用<customErrors>随意重定向:

<customErrors mode="RemoteOnly" defaultRedirect="~/redirect/error-status.aspx">
    <error statusCode="403" redirect="~/redirect/access-denied.aspx" />
    <error statusCode="404" redirect="~/redirect/file-not-found.aspx" />
</customErrors>

您可以根据需要将每个状态代码重定向到单个页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM