【Tomcat安全】Tomcat版本信息泄露漏洞修复办法

news/2024/12/12 7:47:59/文章来源:https://www.cnblogs.com/o-O-oO/p/18601350

默认首页

如果Tomcat安装后没有部署任何Web应用程序,访问时会看到一个默认的欢迎页面,该页面会泄露Tomcat的版本信息,如下:

解决办法就是禁用默认首页。

方法1:删除或修改默认首页文件

删除或修改Tomcat安装目录下的webapps/ROOT文件夹中的默认首页index.jsp文件,这里演示将默认首页index.jsp文件更名为index.jsp.bak达到移除目的

==方法2:注释或删除相关元素

在Tomcat的安装目录conf/web.xml文件中注释或删除<welcome-file-list>元素中所有的<welcome-file>元素,如下:

[root@localhost conf]# pwd
/opt/apache-tomcat-10.1.33/conf
[root@localhost conf]# tail web.xml
......
<welcome-file-list>
<!--<welcome-file>index.html</welcome-file>-->
<!--<welcome-file>index.htm</welcome-file>-->
<!--<welcome-file>index.jsp</welcome-file>-->
</welcome-file-list>
......
[root@localhost conf]#

这种方式需要重启服务,才能生效。上面2种方法配置完成后,再次访问会发现默认首页已无法找到,报错404

方法3:自定义首页文件

通过配置Tomcat的默认欢迎页来自定义首页,在安装目录conf/web.xml文件<welcome-file-list>元素中设置欢迎页,如下所示:

[root@localhost conf]# tail web.xml
......
<welcome-file-list>
<!--<welcome-file>index.html</welcome-file>-->
<!--<welcome-file>index.htm</welcome-file>-->
<!--<welcome-file>index.jsp</welcome-file>-->
<welcome-file>test.html</welcome-file>
</welcome-file-list>
......

然后将自定义的首页文件test.html放置在Tomcat安装目录下的webapps/ROOT文件夹中。重启服务后默认便会访问自定义的页面内容。

错误页面,如404页面

当访问不存在的资源时,Tomcat默认的404错误页面有时会显示服务器的版本信息,这也是最常见的一种泄露方式,如:

方法1:配置错误重定向页面
在安装目录的conf/web.xml文件中配置自定义的全局错误页面,如下:

   <error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>400</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>501</error-code>
<location>/error.html</location></error-page>

再在安装目录的webapps/ROOT文件中定义错误页面内容。例如

[root@localhost ROOT]# cat error.html
Sorry, the page you are looking for does not exist

重启服务,然后访问一个不存在的页面,则会展示自定义的错误页面内容。

方法2:配置重写ErrorReportValve
在Tomcat安装目录conf/server.xml文件中配置重写ErrorReportValve,添加如下内容:

<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" />

说明:

• showReport:设置是否显示报错或异常信息
• showServerInfo:设置是否显示Apache Tomcat和版本号

重启服务后刷新页面效果如下:

方法3:直接修改catalina.jar文件(但不推荐)
修改安装目录lib/catalina.jar包文件中org/apache/catalina/util/ServerInfo.properties文件server.info及server.number内容。例如修改为如下内容:

修改后重启服务再次刷新页面效果如下:

个人观点,仅供参考

原创 北极星001 运维记事

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/851177.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode题集-6 - Z 字形变换

分享Z字形排列字符串的解法,包括二维矩阵模拟、行模拟(压缩矩阵、代码精简)、伪直接构建和真直接构建,真直接构建需处理周期和行字符数,直接拼接结果字符串。题目:将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。这一题作为中等难度…

SqlSugar:一个针对.NET平台设计的ORM框架

以下文章来源于全栈程序员园地 ,作者小袁同学 项目介绍 SqlSugar是一个针对.NET平台设计的ORM框架,以其快速、简单、易用著称,并支持多种数据库,包括国内外主流数据库和国产数据库。 开箱即用,MIT License开源免费。 开源地址:https://gitee.com/dotnetchina/SqlSugar 在…

【spring编程】Spring中Filter与Interceptor的区别及正确用法

自从我们开始使用 Spring,我们经常听到过滤器(Filter)和拦截器(Interceptor)。然而,当真正需要使用它们时,可能会对它们的区别和相似点感到困惑。产生这种困惑的主要原因是它们的用途相似(例如,授权检查、日志处理、数据压缩/解压等)。 使用过滤器可以实现的场景同样…

读数据保护:工作负载的可恢复性11传统数据源中的数据

传统数据源中的数据1. 传统数据源中的数据 1.1. 需要备份的数据分散在各种地方1.1.1. 有些数据源是大家都能意识到的1.1.1.1. 即便在大家都能想到的这些数据源里,仍然会有一些容易忽视的问题1.1.2. 有一些不那么明显2. 实体服务器 2.1. 以前,我们把实体服务器直接叫作服务器,…

GoAccess :一款出色的开源网络日志分析工具

GoAccess 是一款出色的开源网络日志分析工具。它支持多种主流软件日志格式,如 Apache、Nginx 等。基于 C 语言构建,具备实时分析能力,能快速处理日志数据并生成可视化报告,无论是终端展示还是 HTML、JSON、CSV 格式输出,都为网络运维与业务优化提供有力支持。官网地址:ht…

canvas生成图片有没有跨域问题?如果有如何解决?

Canvas 生成图片本身不会直接导致跨域问题,但是如果 Canvas 使用的图片资源来自不同的域,就会出现跨域问题。 这是因为浏览器出于安全考虑,限制了从一个域加载的脚本访问另一个域的资源。 具体来说,如果你的 Canvas 画布绘制了来自其他域的图片,然后你试图使用 toDataURL…

如何垂直居中`img`?

有多种方法可以垂直居中 <img> 元素,选择哪种方法取决于 <img> 元素的上下文以及你想要达到的具体效果。以下是一些常用的技巧: 1. Flexbox: 这是现代布局中最推荐的方法,因为它简洁且灵活。 <div style="display: flex; align-items: center; justify…

ubuntu20.04.6配置虚拟VCAN

开启vcan设备的命令: sudo ip link add dev vcan0 type vcan 如果没有vcan模块,则先用modprobe命令生成vcan模块: sudo modprobe vcan 如果模块/lib/modules/linux-headers-$(uname -r)下没有vcan.ko,则无法创建vcan模块,需安装linux-headers-$(uname -r): sudo apt inst…

ubuntu20.04.6虚拟机workstation网络配置

步骤1: 设置VMware workstation的虚拟网络编辑器,添加NAT网络:步骤2: 在本地真实主机上设置设置虚拟网络共享,允许其他机器通过本机访问网络。步骤3: 将在创建的虚拟机上配置网络,如下图:图中位置鼠标右键选择设置,将网络改为custom自定义-nat模式

新型知识付费生态系统

新型知识付费生态系统作为教育与软件行业的融合产物,已经成为推动知识传递与商业成功的核心驱动力之一。该生态系统通过一系列前沿科技应用来提升学习体验并实现资源的最佳匹配,从而重塑了在线教育行业的面貌。下面对知识付费在线教育系统的背景、现状和未来趋势进行全面分析…

转载:【AI系统】LLVM 架构设计和原理

在上一篇文章中,我们详细探讨了 GCC 的编译过程和原理。然而,由于 GCC 存在代码耦合度高、难以进行独立操作以及庞大的代码量等缺点。正是由于对这些问题的意识,人们开始期待新一代编译器的出现。在本文,我们将深入研究 LLVM 的架构设计和原理,以探索其与 GCC 不同之处。 …

山西在线教育系统公司

山西在线教育系统行业在近年来展现出蓬勃的发展态势。众多企业在这一领域积极探索并不断推陈出新。以山西交通在线教育培训平台为例,该平台不仅为交通运输系统的党员干部提供了高质量的线上直播培训课程,还显著提高了其学习效果与便捷度。山西在线教育系统作为教育的重要组成…