InformationWhen a runtime error occurs during request processing, Apache Tomcat will display debugging information to the requestor. It is recommended that such debug information be withheld from the requestor.
Debugging information, such as that found in call stacks, often contains sensitive information which may be useful to an attacker. By preventing Tomcat from providing this information, the risk of leaking sensitive information to a potential attacker is reduced.
SolutionPerform the following to prevent Tomcat from providing debug information to the requestor during runtime errors:
Create a web page that contains the logic or message you wish to invoke when encountering a runtime error. For example purposes, assume this page is located at /error.jsp.
Add a child element, <error-page>, to the <web-app> element, in the $CATALINA_HOME/conf/web.xml file.
Add a child element, <exception-type>, to the <error-page> element. Set the value of the <exception-type> element to java.lang.Throwable.
Add a child element <location> to the <error-page> element. Set the value of the <location> element to the location of page created in step 1.
The resulting entry will look as follows:
Tomcat's default configuration does not include an <error-page> element in $CATALINA_HOME/conf/web.xml. Therefore, Tomcat will provide debug information to the requestor by default.