Tomcat 修改默认404页面的服务器版本号(另一种改法)

本文参考了:tomcat隐藏404页面中的版本号__c G的博客-CSDN博客

【起源】     

        我的服务器上部署了不止一个服务,分别在webapps目录下的app1、app2等,访问时需要在路径中提供具体app序号,比如:https://192.168.1.100/app1/index.jsp,然后发现如果访问者随意访问一个不存在的基础路径例如:https://192.168.1.100/index.jsp,(也就是绕过网站名)则会弹出系统默认的404页面,上面显示了当前Tomcat的服务器版本号。

Tomcat 修改默认404页面的服务器版本号(另一种改法)_第1张图片

【隐患】

    那就是容易被针对性攻击爆破。

【常规解决方案】

    1、修改应用内的web.xml(只适用于网站路径内的无效页

        该方案资料较常见,但是只能用于访问路径在应用路径内的非正常页面。比如我的网站app1,访问了https://192.168.1.100/app1/aaaaaaaaaaaa.jsp,就会执行自带的404页面。

   2、修改tomcat/lib/catalina.jar文件(烦琐并且要有jar工具,伤筋动骨

       先解压,修改\org\apache\catalina\util\ServerInfo.properties,然后重新压缩成jar。

       本来操作也没什么难,可惜我在windows环境下执行压缩后的catalina.jar无法正常加载,原因暂时也不明,而CentOS有刚好执行到最后jar命令时无法找到这个jar,都失败了。

       其实这个方法在我看来是对原始文件动了手脚,对我的普通应用来说,基本是伤筋动骨的行为

【终极解决方案】

      直接用一个文件搞定。

     这个方案就是参考了文章顶部链接的作者资料,在此表示感谢。

      方法很简单,在tomcat/lib/目录下,按下方路径创建文件夹和文件(敲重点)

org/apache/catalina/util/ServerInfo.properties

注意:是分别创建org、apache、catalina、util 4个文件夹和ServerInfo.properties文本文件而不是修改catalina.jar文件!!!不需要额外工具,不需要额外命令。

然后这个ServerInfo.properties文件里面只需要输入server.info=xxxxx,就够了。

Tomcat 修改默认404页面的服务器版本号(另一种改法)_第2张图片

 

Tomcat 修改默认404页面的服务器版本号(另一种改法)_第3张图片

    来,看看效果吧:

Tomcat 修改默认404页面的服务器版本号(另一种改法)_第4张图片

       思考:这里填IIS Srv,有没有可能让一部分人感到兴奋,然后迫不及待地打开他们的“IIS-attack”?进一步恼羞成怒地疯狂报复?

 【结语】

      怎么样?简单而又高效吧?既不用动了catalina.jar文件,又能生效。拿去吧。

你可能感兴趣的:(服务器,运维)