【发布时间】:2012-10-17 22:44:27
【问题描述】:
我希望能够隐藏我的 DotNet 2.0 网站中存在的文件夹,该网站通过 IIS 7.5 托管,其中包含必须继续可访问的文件。例如,我希望一个人的网络浏览器能够检索文件 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 中,我希望能够创建一个通配符映射,该映射会导致所有请求都通过然后允许我创建 404 的 DotNet,但同样,这似乎不适用于 IIS7.5。
我已经尝试在 web.config ( 节点) 中创建处理程序,该处理程序适用于我的暂存系统,但不适用于我的生产系统。此外,这种方法似乎有点矫枉过正,因为我必须创建一个 c# 处理程序,并在 web.config 中为我要隐藏的每个文件夹都有一个处理程序条目。我想要一个更简单的解决方案,但该解决方案似乎不适用于我的生产系统。
理想情况下,对不包含尾部正斜杠的文件夹的请求不应导致 301 重定向,但也应导致 404。
【问题讨论】: