我在 AWS 上运行 Tomcat。问题是,当请求因异常而崩溃时,Tomcat 不仅会发送 503,还会以 HTML 格式发送异常的堆栈跟踪。这会将我的源代码暴露给不需要查看它的查看者。
我该如何禁用此功能?
答案1
错误页面由一个简单的错误处理程序生成,错误报告阀。您可以通过将以下行添加到部分来隐藏堆栈跟踪(showReport
)以及服务器信息:server.xml
Host
<Valve className="org.apache.catalina.valves.ErrorReportValve"
showReport="false"
showServerInfo="false" />
另一个解决方案是使用自定义、用户友好的每个 HTTP 错误代码的错误页面:
<error-page>
<error-code>500</error-code>
<location>/error500.jsp</location>
</error-page>
以及每一个不同的Throwable
:
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error-Exception.jsp</location>
</error-page>
<error-page>
<exception-type>java.sql.SQLException</exception-type>
<location>/error-SQLException.jsp</location>
</error-page>