Asp.net 将403禁止的错误消息重定向到IIS中的404

Asp.net 将403禁止的错误消息重定向到IIS中的404,asp.net,iis,web-config,Asp.net,Iis,Web Config,如果我们通过在末尾添加文本“/../../../../”来发布URL。IIS在响应头中返回“403-禁止”错误 有没有办法将IIS配置为返回“404-未找到”错误而不是“403”错误 这是一个asp.net web应用程序 对我们网站的安全扫描发现,返回“403”可能有助于恶意人员映射我们的网站;我以前没有想到过,但我不得不承认这是有道理的。您是否发布了类似“”的请求并收到403错误 如果是这样,您可能会注意到它的响应服务器是SERVER:Microsoft HTTPAPI/2.0,而不是SER

如果我们通过在末尾添加文本“/../../../../”来发布URL。IIS在响应头中返回“403-禁止”错误

有没有办法将IIS配置为返回“404-未找到”错误而不是“403”错误

这是一个asp.net web应用程序


对我们网站的安全扫描发现,返回“403”可能有助于恶意人员映射我们的网站;我以前没有想到过,但我不得不承认这是有道理的。

您是否发布了类似“”的请求并收到403错误

如果是这样,您可能会注意到它的响应服务器是SERVER:Microsoft HTTPAPI/2.0,而不是SERVER:Microsoft IIS/7.5。这意味着请求在http.sys级别被阻止。所以恐怕我们在IIS里什么都做不了

当IIS模块返回URL重写模块后执行的403错误时,我们只能使用URL重写将403重写为404

编辑:

这条规则对我来说很管用


由于安全扫描,我不得不做同样的事情。 这是我的解决方案,在web.config文件中执行此操作。在我的例子中,我有用于错误代码的自定义html页面,我认为这是一个很好的实践

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" />
        <httpErrors errorMode="Custom">
            <remove statusCode="404" />
            <error statusCode="404" path="/physical_path_to_your_custom_404_page_relative_to_the_web.config_file/404.html" responseMode="Redirect" />
            <error statusCode="403" subStatusCode="14" path="/physical_path_to_your_custom_404_page_relative_to_the_web.config_file/404.html" responseMode="Redirect" />
        </httpErrors>
    </system.webServer>
</configuration>

这样,真正的404错误和403.14(14是到达实际路径的特定代码,但浏览被拒绝)错误都将重定向到404错误页面。将不会看到403,因此对于最终用户来说都是404错误


编辑:您可能需要安装“http错误”功能才能工作。

这个问题很模糊,您能解释一下您想要实现什么吗?你在IIS上运行什么,你尝试过什么,你希望看到什么?提供更多的信息将帮助其他人解决您的问题。首先学习子状态代码,是的,我面临同样的问题。我尝试了URL重写,但没有工作。您能否提供任何解决方案,或者是否有任何选项隐藏服务器:Microsoft Httpai/2.0信息。@VijayKumar很抱歉,无法在HTTP.sys级别重写响应状态。如果要删除它,请添加DWORD HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\DisableServerHeader=2。对于IIS,您可以尝试URL重写。我已经尝试了下面的重写规则,但仍然不起作用<代码>代码
代码
@VijayKumar您是否使用403错误尝试了出站规则?如果是这样,URL重写将不起作用。您需要在可以到达IIS管道的请求上尝试它。失败的请求跟踪可以帮助您缩小重写规则不起作用的原因。