是否可以从ASP.NET 4.0中的服务器错误页面中删除信息?

为了更好地隐藏用户的信息,我试图从标准的ASP.NET错误屏幕中删除版本信息部分。

自定义错误已启用,但是,在某些情况下,如果您设法在控件之外发生错误(可能是服务器问题?),那么您可以进入YSOD。 我已经尝试更改web.config以包含httpruntime设置,您可以将enableVersionHeader设置为false,但版本信息仍然存在。

此外,在Application_PreSendRequestHeaders方法中,我尝试从响应标头中删除“X-AspNet-Version”,但由于web.config设置,该标头不存在。

在这种情况下我甚至想要什么?或者这些信息是否总是存在?

要从.NET错误页面隐藏.NET版本信息(不是像403,404等常见的IIS错误),请使用不带 defaultRedirect属性的空元素:

     

之前:

之前

后:

后

要删除X-AspNet-Version HTTP响应标头,请在httpRuntime元素上将enableVersionHeader设置为False

      

在IIS中,此问题可以解决更改“HTTP响应标头”配置


要删除X-AspNet-Version ,请在web.config中找到/ create 并添加:

    ... 

要删除X-AspNetMvc-Version ,请转到Global.asax,查找/创建Application_Start事件并添加一行,如下所示:

  protected void Application_Start() { MvcHandler.DisableMvcResponseHeader = true; } 

要删除X-Powered-By ,请在web.config中找到/ create 并添加:

        ... 

问题可能是IIS正在呈现错误页面而不是ASP.NET。 尝试更改web.config的system.webServer部分,如下所示:

       

另外,检查IIS设置,这可能是设置X-AspNet-Version标头的位置。