Asp.net 需要为IIS7.5上的文件夹生成404,但不是其内容

Asp.net 需要为IIS7.5上的文件夹生成404,但不是其内容,asp.net,iis,iis-7,iis-7.5,Asp.net,Iis,Iis 7,Iis 7.5,我希望能够隐藏通过IIS 7.5托管的DotNet 2.0网站中存在的文件夹,其中包含必须继续访问的文件。例如,我希望一个人的web浏览器能够检索文件domain.com/css/style.css(呈现页面时需要该文件),但如果该人试图访问URL domain.com/css/或domain.com/css,我希望他们收到404错误。(不是403错误) 默认情况下,IIS 7.5将给出403错误,这仍然允许攻击者知道文件夹的存在。我意识到,攻击者可以通过在浏览器中访问站点并看到文件正在从“cs

我希望能够隐藏通过IIS 7.5托管的DotNet 2.0网站中存在的文件夹,其中包含必须继续访问的文件。例如,我希望一个人的web浏览器能够检索文件domain.com/css/style.css(呈现页面时需要该文件),但如果该人试图访问URL domain.com/css/或domain.com/css,我希望他们收到404错误。(不是403错误)

  • 默认情况下,IIS 7.5将给出403错误,这仍然允许攻击者知道文件夹的存在。我意识到,攻击者可以通过在浏览器中访问站点并看到文件正在从“css”文件夹中提取,从而轻松发现“css”文件夹的存在。也就是说,这是我必须遵守的项目要求

  • 在IIS6中,我曾经能够为文件夹设置隐藏属性,这将为我提供我想要的404行为,但在IIS7.5中不再是这种情况。(如果我尝试这样做,IIS 7.5会给出一个500错误)IIS 7.5是该项目的另一个要求。此外,在IIS6中,我希望能够创建一个通配符映射,该映射将导致所有请求通过DotNet路由,这将允许我创建一个404,但同样,这在IIS7.5上似乎不起作用

  • 我已经尝试在web.config(节点)中创建处理程序,它可以在我的登台系统上工作,但不能在我的生产系统上工作。此外,这种方法似乎有些过分,因为我必须创建一个c#处理程序,并在web.config中为每个要隐藏的文件夹创建一个处理程序条目。我想要一个更简单的解决方案,但是,这个解决方案似乎对我的生产系统不起作用

  • 理想情况下,对不包含尾部正斜杠的文件夹的请求不应导致301重定向,但也应导致404重定向


  • 您可以始终将handler/ASPX页面作为目录的默认页面,并让该处理程序返回404错误代码。

    谢谢您的帮助,这似乎很有效。但是,当您尝试访问web浏览器中的目录时,如果没有尾随的正斜杠,此解决方案仍然允许出现301错误。有什么办法可以避免吗?301指向包含尾部正斜杠的URL版本。(因此最终会有两个从web浏览器到服务器的请求)这个新URL(包含尾随的正斜杠)会生成一个404,但是有一个间隙301的事实意味着目录(或其他东西)是否存在我试图隐藏的内容。我最终采用了您的解决方案,即为每个要隐藏的目录使用单独的default.aspx页面,并让default.aspx页面返回所需的404错误代码。我仍然会遇到301重定向问题,但这是迄今为止我能够找到并开始工作的最佳解决方案。再次感谢你的帮助。