默认报错页面信息会暴露出版本号
进入tomcat的lib目录找到catalina.jar文件
unzip catalina.jar之后会多出两个文件夹
进入org/apache/catalina/util 编辑配置文件ServerInfo.properties
修改为
server.info=Apache Tomcat
server.number=0.0.0.0
server.built=Nov 7 2021 20:05:27 UTC
将修改后的信息压缩回jar包
cd /tomcat/lib
jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
重启tomcat
可以看到没有了版本信息。
处理这样隐藏版本信息之外,在web.xml 中配置
也可以,但是因为后端报错比较多,处理500 和 404之外,还需要配置其他报错代码,比如400等,比较麻烦。
其实更好的方法是,用nginx的来统一配置错误页面,这样报错时统一由nginx来处理,不会出现任何 tomcat的相关信息:
发生错误时,统一显示下面的错误页面:
用户甚至不知道nginx后面的是 tomcat 呢,还是 php,还是啥。 完美!!!
需要注意的是 nginx 反向代理tomcat错误页面使用的是proxy_intercept_errors on;
而 nginx 自身的错误页面配置用的是 fastcgi_intercept_errors on;
Nginx/Openresty隐藏版本号:
nginx的http段添加 server_tokens off;