tomcat-错误页面屏蔽敏感信息
Tomcat 错误页面通常会显示异常的堆栈跟踪信息,这可能会泄露应用程序的敏感信息。为了屏蔽这些敏感信息,可以通过以下方法进行配置:
- 修改
conf/web.xml
文件,找到关于错误处理的部分,并添加或修改<error-page>
元素。
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error.jsp</location>
</error-page>
- 创建一个自定义的错误页面,例如
error.jsp
,在该页面中可以控制显示哪些信息。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Error Page</title>
</head>
<body>
<h1>An error occurred!</h1>
<p>Please contact the system administrator.</p>
<!-- 不显示具体错误信息 -->
</body>
</html>
- 如果想要更进一步,可以使用
org.apache.jasper.servlet.JasperServlet
的displaySourceFragment
属性设置为false
来关闭源代码片段的显示。
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>displaySourceFragment</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
- 对于 Java 异常的堆栈跟踪信息,可以通过修改 JVM 启动参数来控制堆栈跟踪的详细程度:
-XX:+OmitStackTraceInFastThrow
此参数会让 JVM 在快速抛出异常时省略堆栈跟踪信息。
- 如果使用 Logging 框架(如 Log4j、SLF4J 等),确保不在日志中记录敏感信息。
总结,通过自定义错误页面、关闭 JSP 页面的源代码显示以及调整 JVM 参数,可以在不泄露过多信息的情况下,提供有用的错误提示给用户。
评论已关闭