为了避免黑客针对某些版本进行攻击,因此我们需要隐藏或者伪装 Tomcat 的版本信息。
针对该信息的显示是由一个jar包控制的,该jar包存放在 Tomcat 安装目录下的lib目录下,名称为 catalina.jar

1、两种方式,第一种是修改catalina.jar文件

进入tomcat的lib目录找到catalina.jar文件

unzip catalina.jar之后会多出两个文件夹

进入org/apache/catalina/util 编辑配置文件ServerInfo.properties字段来实现来更改我们tomcat的版本信息

修改为

server.info=Apache Tomcat
server.number=0.0.0.0
server.built=Apr 2 2017 07:25:00 UTC

将修改后的信息压缩回jar包

# cd  /tomcat/lib
# jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties

重启tomcat

2、修改server属性

在Connector中添加server属性就可以了,具体如下:

打开tomcat的conf/server.xml,在server.xml找到
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
useBodyEncodingForURI="true" /> 修改后如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
server="Microsoft-IIS/6.5"/>

3、默认Tomcat 是开启了对war包的热部署。为了防止被植入木马等恶意程序,因此我们要关闭自动部署。

将unpackWARs和autoDeploy由原先true都改为false
<Host name="localhost" appBase="" unpackWARs="false" autoDeploy="false">

线上是不使用 Tomcat 默认提供的管理页面的,因此都会在初始化的时候就把这些页面删掉。这些页面是存放在 Tomcat 安装目录下的webapps目录下的。
我们只需要删除该目录下的所有文件即可。另外conf/Catalina/localhost目录下的2个配置文件 host-manager.xml 和 manager.xml 也需要一并删掉。

4、为了进一步安全,建议使用专用用户 tomcat 或者 nobody 用户来启动 Tomcat,为了防止 Tomcat 被植入 web shell 程序后,可以修改项目文件。因此我们要将 Tomcat 和项目的属主做分离,这样子,即便被搞,他也无法创建和编辑项目文件。

tomcat修改banner,隐藏版本号的更多相关文章

  1. 修改或隐藏Nginx的版本号

    隐藏版本号 隐藏nginx的版本号很简单,nginx的HttpCoreModule提供了一条叫做server_tokens指令,我这要将这条指令设置为“server_tokens off”就可以了. ...

  2. Nginx修改版本信息或隐藏版本号

    一,隐藏版本号.首先说明,这个是某一方面隐藏,不是彻底隐藏.未隐藏之前查看nginx信息: 隐藏方法: 修改nginx.conf配置文件,在http { } 标签里边加入字段: server_toke ...

  3. weblogic隐藏版本号教程(10.3.6为例)

    隐藏版本号,如同大多数中间件都是取消Server头的发送:weblogic而言其默认就是不发送Server头的(即下边的“发送服务器标头”默认就是没钩选的). 写此教程的原因,一是以防Server头被 ...

  4. Apache隐藏版本号教程(CentOS)

    1 找到Apache配置文件/etc/httpd/conf/httpd.conf 2 给该文件添加写权限:chmod u+w httpd.conf 3 打开该文件找到ServerTokens字段将其值 ...

  5. vsftpd 编译安装 及 隐藏版本号

    环境:Redhat Enterprise Linux AS 4.0 update2(i386) 不提示,均表示以root权限执行. [注:]//为注释符,如"// 建立MySQL组" ...

  6. ngin隐藏版本号

    Nginx默认是显示版本号的,如:   这样就给人家看到你的服务器nginx版本,这样暴露出来的版本号就容易变成攻击者可利用的信息.所以,从安全的角度来说,隐藏版本号会相对安全些! 配置如下: 修改n ...

  7. nginx 隐藏版本号与WEB服务器信息

    nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看看最终的隐藏结果吧 具体怎么实现呢,其实也很简单,请往下看 1 官网下载最新稳定版 wget http://nginx.org/dow ...

  8. 关于修改banner信息;nginx反向代理apache应用

    本周实验 1. Linux下Apache部署一个php页面,返回http数据包中查看server信息,修改Apache 配置使server banner自定义. 2. nginx设置反向代理,代理上面 ...

  9. jetty隐藏版本号教程

    一.查看版本号 直接访问端口不像apache/tomcat/nginx会直接有版本号 但实际查看返回http头时还是带着版本号 二.隐藏版本号操作 编缉$JETTY_HOME/start.ini将je ...

随机推荐

  1. nginx访问统计

    1).根据访问IP统计UV awk '{print $1}'  access.log|sort | uniq -c |wc -l 2).统计访问URL统计PV awk '{print $7}' acc ...

  2. DBUtils工具类

    import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql. ...

  3. matlab-调用摄像头人脸识别

    ----------------------------边学边写边学习------------------------------------- 版本:2014a 调用摄像头 a = imaqhwin ...

  4. python爬取免费优质IP归属地查询接口

    python爬取免费优质IP归属地查询接口 具体不表,我今天要做的工作就是: 需要将数据库中大量ip查询出起归属地 刚开始感觉好简单啊,毕竟只需要从百度找个免费接口然后来个python脚本跑一晚上就o ...

  5. 使用Dom4j对XML文档创建与解析

    创建XML文件: public class Dom4jCreateXml { public void testCreatXml() { //创建文档对象 Document document = Doc ...

  6. python练习题_03

    1.写函数: 根据范围获取其中3和7整除的所有数的和,并返回调用者: 符合条件的数字个数以及符合条件的数字的总和,如:def func(start,end): def func(start,end): ...

  7. sphinx-2.1.9的安装使用

    1.下载/编译安装 cd /usr/local/src wget http://sphinxsearch.com/files/sphinx-2.1.9-release.tar.gz tar -xf s ...

  8. js生成带有logo的二维码并保存成图片下载

    生成二维码,需要依赖jquery,先引入一个jquery,然后需要一个插件改变过了jquery-qrcode.js 插件代码(需要的自己打开看): /*! jquery-qrcode v0.14.0 ...

  9. Java环境变量PATH和CLASSPATH

    Java开发中常用到环境变量的配置,下面简单介绍下Java中经常配置的环境变量:PATH和CLASSPATH. 1.PATH环境变量 1.1 作用简介 安装完JDK(Java Development ...

  10. 关于导入zepto出错的问题

    一.前言 webpack在配置多页面开发的时候 ,发现用 import 导入 Zepto 时,会报 Uncaught TypeError: Cannot read property 'createEl ...