【问题标题】:need to generate 404 for folders on IIS7.5 but not their contents需要为 IIS7.5 上的文件夹而不是其内容生成 404
【发布时间】:2012-10-17 22:44:27
【问题描述】:
  1. 我希望能够隐藏我的 DotNet 2.0 网站中存在的文件夹,该网站通过 IIS 7.5 托管,其中包含必须继续可访问的文件。例如,我希望一个人的网络浏览器能够检索文件 domain.com/css/style.css (这是呈现页面所必需的),但如果该人试图访问 URL domain.com/css/ 或domain.com/css 我希望他们收到 404 错误。 (不是 403 错误)

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

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

  4. 我已经尝试在 web.config ( 节点) 中创建处理程序,该处理程序适用于我的暂存系统,但不适用于我的生产系统。此外,这种方法似乎有点矫枉过正,因为我必须创建一个 c# 处理程序,并在 web.config 中为我要隐藏的每个文件夹都有一个处理程序条目。我想要一个更简单的解决方案,但该解决方案似乎不适用于我的生产系统。

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

【问题讨论】:

    标签: asp.net iis iis-7 iis-7.5


    【解决方案1】:

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

    【讨论】:

    • 感谢您的帮助,这似乎有效。此解决方案仍然允许发生 301 错误,尽管当您尝试在 Web 浏览器中访问没有尾随正斜杠的目录时。有没有办法避免这种情况?
    • 301 指向包含尾部正斜杠的 URL 版本。 (因此最终有两个从 Web 浏览器到服务器的请求)这个新 URL(包含尾部正斜杠)然后生成一个 404,但是有一个插页式 301 的事实意味着目录(或其他东西)在那里我试图隐藏。
    • 我最终采用了您的解决方案,即为我要隐藏的每个目录使用单独的 default.aspx 页面,并让 default.aspx 页面返回所需的 404 错误代码。我仍然遇到 301 重定向问题,但这是迄今为止我能够找到并开始工作的最佳解决方案。再次感谢您的帮助。
    猜你喜欢
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多