And*_*yle 12 error-handling tomcat web-config
默认情况下,Tomcat的错误页面会显示Tomcat的存在以及处理请求的容器的确切版本.这对于开发很有用,但在生产环境中,这些信息是一个潜在的安全漏洞,禁用它会很不错.
因此,我想知道最好的(如最直接/最全面的)解决方案是完全抑制Tomcat的默认错误页面.我知道<error-page>
web.xml 中的选项,但它似乎在两个所需的计数上都失败了,部分是因为我必须多次列出相同的备用错误页面(每个响应代码我想要处理一个),并且因为这个打击我可能不是100%健壮; 如果攻击者能够以某种方式获得我没有明确列出的错误代码,他们将获得默认的错误页面.
理想情况下,设置通用自定义错误页面或者在默认错误页面中禁用发送任何HTML以及错误代码的简单选项将是最佳选择.如果这些选项都不可能,我有兴趣了解实现此功能的典型方法是什么(讨论/显示为什么不存在这些假设选项的奖励点,因为看起来我的要求是非常标准的对于在生产中使用Tomcat的任何人......).
<error-page>
是正确的答案,但您不希望仅将所有错误代码重定向到某些通用消息.您必须考虑如何处理每个错误.如果您担心可能会错过其中一个代码,请查看HttpServletResponse界面中的常量.
最简单,最全面的方法是使用ErrorReportValve-只需将以下行添加到server.xml的Host部分(您应该已经在其中拥有AccessLogValve:
<Valve className="org.apache.catalina.valves.ErrorReportValve"
showReport="false"
showServerInfo="false"/>
Run Code Online (Sandbox Code Playgroud)
这样,您可以隐藏服务器信息,并且(由于可选的showReport = false)还可以跟踪堆栈。
您可以在“ 安全方法”和“ 错误报告阀”的文档中阅读有关此内容的更多信息。
归档时间: |
|
查看次数: |
10407 次 |
最近记录: |