返回404而不是403来修复C#.net中的安全漏洞“Hidden Directory Detected”

问题描述 投票:0回答:1

我正在编写 .NET Web 表单应用程序安全扫描报告,该报告扫描了门户并报告了“检测到隐藏目录”问题。

风险:可以检索有关站点文件系统结构的信息,这可能有助于攻击者映射网站。

测试尝试检测服务器上的隐藏目录。 403 Forbidden 响应 即使不允许访问,也会显示该目录的存在。

报告建议对禁止的资源发出“404 - 未找到”响应状态代码,或将其完全删除。

我修改了 web.config 文件以禁用目录浏览并设置。

但是,要返回 404 状态代码而不是禁止响应,需要识别并区分是经过身份验证的用户正在访问资源还是攻击者正在尝试检测隐藏目录。

为了解决此问题,我尝试实现 http 处理程序,该处理程序可以处理针对特定已知目录(例如“Images”目录)的请求并返回响应状态代码 404。

C# 处理程序针对特定目录访问返回 404

虽然 handler 可以返回 404 响应,但它只会限制对特定目录的访问。需要对其进行概括以限制对任何隐藏目录的访问。

在 Web 配置中注册处理程序

如果有人了解更多有关修复隐藏目录检测到的漏洞的信息,请建议一个解决方案,该解决方案可以处理此类恶意攻击并返回 404 响应代码,而不是通过 403 禁止消息来显示隐藏目录。

c# .net httphandler
1个回答
0
投票
  1. 修改 web.config 以处理所有隐藏目录 您可以使用 web.config 中的部分来处理所有 403 错误并返回 404 状态代码。这是一个示例配置:
<system.webServer>
    <httpErrors errorMode="Custom">
        <remove statusCode="403" />
        <error statusCode="403" path="/404.html" responseMode="ExecuteURL" />
    </httpErrors>
</system.webServer>

此配置会将所有 403 错误重定向到自定义 404 页面,有效屏蔽隐藏目录的存在1。

  1. 自定义 HTTP 模块 如果您需要更多控制,您可以创建自定义 HTTP 模块来拦截请求并根据您的逻辑修改响应状态代码。
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.