默认情况下,Tomcat的错误页面会公布Tomcat的存在以及处理请求的容器的确切版本。这对于开发很好,但是在生产环境中,这些信息是潜在的安全漏洞,禁用它会很好。减少Tomcat中的信息泄露错误页面
因此,我想知道什么是最好的(如最简单的/综合)解决方案是完全抑制Tomcat的默认错误页面。我知道web.xml中的<error-page>
选项,但它在所需的计数上似乎都失败了,部分原因是我必须多次列出相同的备用错误页面(每个响应代码要处理一个),因为这可能不是100%稳健的;如果攻击者能以某种方式得到我没有明确列出的错误代码,他们将得到默认的错误页面。
理想的情况下,一个简单的选择设定一个统一的自定义错误页,或者平了禁止在默认错误页面的错误代码一起发送的任何HTML,将是最好的。如果这两种选择都不可行,那么我有兴趣了解实现此功能的典型方法(讨论/显示为什么这些假设选项不存在,因为看起来我的要求相当标准对于任何在生产中使用Tomcat的人...)。
但我有点想 - 因为它是一个独立的web应用程序,从用户的角度来看,无论是正在工作或他们不是;他们看到的实际响应实际上可能是通用的(日志会向技术人员显示实际问题以及HTTP响应代码仍然完好无损)。无论如何,接受你的答案是根据Tomcat可能发送的响应代码的枚举。 – 2009-10-06 08:02:44
在默认的tomcat安装中,默认安装了一堆webapps,例如, 'manager','host-manager','examples','tomcat'。看起来我需要为这些webapps中的每一个配置这组完整的错误代码,对吧? – 2011-09-07 05:16:37
哦 - 我刚刚发现了CATALINA_HOME/conf/web.xml文件。我已经把放在了那里,但它仍然是一个问题,因为我不知道如何让tomcat找到引用的文件(或放置我的error.html文件的位置)。这意味着黑客会看到不同的结果,具体取决于他是否查询'/tomcat'与'/foo',它至少会披露我正在使用tomcat。 –
2011-09-07 05:31:30