当您尝试访问Web服务器上的目录时,您会收到403消息,而通常更希望获得404消息,这样您就不会给黑客一个文件夹存在的线索。
我以为我找到了这个问题的最终解决方案 - 将其添加到web.config system.webServer:
<handlers>
<add name="StopDirectoryBrowsing" path="*." resourceType="Directory" verb="*" type="System.Web.HttpNotFoundHandler" preCondition="integratedMode" />
</handlers>
当您尝试访问目录时,这会正确引发404。
但遗憾的是,它会杀死顶层的默认文档机制。
任何人都可以建议上面的变体允许默认文档工作但仍保护子目录。
答案 0 :(得分:1)
这实际上并没有更改返回的状态代码,但您可以使用<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>
如果您愿意,可以将每个状态代码重定向到一个页面。