Tomcat删掉错误页面的版本信息
Tomcat服务在响应404/500等网络错误时,默认会将当前版本信息显示出来,这样就造成了中间件版本信息泄露这样的漏洞
方案一:修改版本号
1.进入Tomcat下的lib目录,备份catalina.jar文件后,解压该文件
cd tomcat/libcp catalina.jar catalina.jar.bakunzip catalina.jar
2.解压后,通过vi编辑器修改解压出来的ServerInfo.properties文件(在/org/apache/catalina/util/下)
vim org/apache/catalina/util/ServerInfo.properties
3.去除ServerInfo.properties文件的版本信息
server.info=ApacheTomcat
server.number=0.0.0.0
server.built=Nov 72016 20:05:27 UTC
4.将修改后的文件压缩回catalina.jar包中
jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
5.重启Tomcat服务,访问不存在的页面进行404报错验证,看是否还显示中间件版本号
方案二:自定义错误页面替换默认页面
1.进入Tomcat的conf目录,修改web.xml,在标签前添加如下内容
<error-page><error-code>404</error-code><location>/error_404.html</location>
</error-page>
<error-page><error-code>400</error-code><location>/error_404.html</location>
</error-page>
<error-page><error-code>500</error-code><location>/error_404.html</location>
</error-page>
<error-page><error-code>501</error-code><location>/error_404.html</location>
</error-page>
2.进入Tomcat的webapps/ROOT目录,新增error_404.html页面,使用自定义页面已达到隐藏中间件版本信息的目的
3.针对400错误需要单独处理
3.1创建一个web项目,创建类并继承ErrorReportValve
package com.java.report;import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.logging.Logger;import org.apache.catalina.connector.Request;
import org.apache.catalina.connector.Response;
import org.apache.catalina.valves.ErrorReportValve;public class CustomErrorReportValve extends ErrorReportValve {// Create a simple loggerLogger log = Logger.getLogger(CustomErrorReportValve.class.getName());@Overrideprotected void report(Request request, Response response, Throwable t) {try {// Write a more friendly, less technical message to the userBufferedWriter out = new BufferedWriter(new OutputStreamWriter(response.getOutputStream()));out.write("<html><head><title>Oops</title><body>");out.write("<h1>Oops</h1>");out.write("<p>Well, that didn't go as we had expected.</p>");out.write("<p>Don't worry though, we're working on it.</p>");out.write("</body></html>");out.close();// Log the error with your favorite logging framework...log.severe("Uncaught throwable was thrown: " + t.getMessage());} catch (IOException e) {e.printStackTrace();}}
}
3.2 项目右键导出jar包tomcat-error-report.jar
3.3 把jar包放到lib下,
3.4 配置errorReportValveClass
修改server.xml,在host里配置
<Host errorReportValveClass="com.java.report.CustomErrorReportValve" />
3.5重启Tomcat服务
errer_404.html:https://download.csdn.net/download/javaL_X/85115283
tomcat-error-report.jar:https://download.csdn.net/download/javaL_X/85115444
Tomcat删掉错误页面的版本信息相关推荐
- IIS错误页面隐藏版本信息 - Web.Config customErrors配置
目录 背景 分析暴露原因 解决办法 扩展学习customErrors使用方法 customErrors元素配置结构 元素属性 Mod 属性选项 示例 参考文章 背景 项目现按照国网的要求,测试后发现系 ...
- tomcat添加全局错误页面
在我们项目安全测试中,会出现中间件信息泄露,以tomcat为例,如果我们没有配置统一的错误页面,访问不存在的地址时会出现如下图: 这会暴露我们的tomcat版本信息,在安全测试中,这是不允许的,属于严 ...
- tomcat全局配置错误页面详解(404页面)
前言 花了两个小时,配置了下.在网上查了诸多攻略:没有一个是讲清楚的,我就随手写下,以备后期查用. 版本 tomcat 7.0.75 过程 大家可以看下,这是我按网上的步骤搞的,把错误页面放到了ROO ...
- http 请求(tomcat) 返回 错误页面信息
http 请求,返回错误信息的html 页面: try{while (true) {while (reader.ready()) {String buf = null;while ((buf = re ...
- 检测到错误页面web应用服务器版本信息泄露
比方说我现在访问:http://localhost:8080/pages/xx.jsp,应该会报404,没有该页面,但是会显示出所用服务器的信息: 所以为了避免产生此类漏洞个,应该对错误进行处理,在w ...
- 隐藏tomcat页面异常显示的版本信息
1.正常情况下,tomcat遇到404或500会返回版本信息: 在这里插入图片描述 .在linux环境下 进入lib路径 unzip catalina.jar 编辑ServerInfo.propert ...
- 隐藏Tomcat版本信息
前言:软件开发中生产环境有时候需要影响Tomcat的版本,本文主要介绍Tomcat和SpringBoot中设计. 原理:修改Tomcat中的ServerInfo.properties版本信息,使用ja ...
- HOW-TO:带有Spring MVC的Tomcat中的自定义错误页面
默认的Tomcat错误页面看起来很可怕. 此外,它们可能会公开有价值的信息,包括服务器版本和异常堆栈跟踪. Servlet规范提供了一种通过web.xml配置异常行为的方法. 可以配置对特定Java异 ...
- 如何自定义Tomcat 404错误页面
分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 点击这里使用RSS ...
最新文章
- Centos6.5升级系统自带gcc4.4.7到gcc4.8.0
- 人力资源学python有意义吗-python爬虫抖音 个人资料 仅供学习参考 切勿用于商业...
- BugkuCTF-Crypto题给你私钥吧
- 少走弯路的十条忠告收藏
- flops什么意思中文_不知道什么是FLOPs?进来瞧瞧~
- redis 集群 搭建(非哨兵)
- SlickEdit基本设置
- VS2015一键卸载所有组件工具,彻底卸载干净。
- 锐起无盘服务器蓝屏死机,正确配置减少锐起无盘系统死机蓝屏
- 其实特简单,Python 做一个漂亮女孩词云跳舞的视频
- iOS基础——UI控件之UIAlertController、UINavigationController、Segue、SVProgressHUD
- 查看iOS手机系统日志,在mac/window电脑上查看
- how velero works
- 北大郭炜算法课笔记整合
- 教授建议:科研人员压力太大,应该培养一些吃喝玩乐之类“庸俗”的爱好
- VMware Workstation 未能启动 VMware Authorization Service解决方法
- TiED:人类组织特异性增强子数据库
- postgreSQL+数组及复合类型=王炸
- 模式识别(Pattern Recognition)学习笔记(三十五)-- K-L变换与PCA
- 30分钟搞定极光sdk安卓客户端接入
热门文章
- ubuntu16.04下安装企业微信和微信(实测能用)
- 白鹭张晨樱:认知的边界,另类的独特
- delphi html 乱码,关于网页乱码解决 送给我一样的新手
- 矩阵的秩,特征值和特征向量 矩阵基础概念
- form表单提交数据到后台的方式
- 【web小票打印】谷歌浏览器跳过预览直接打印(lodop)
- java输出空格_java 中的空格怎么写?
- python读取mp3数据_使用Python访问mp3元数据
- 135-146 李游前端精品课程笔记
- 氮化镓充电器哪家做得好_【一点资讯】主流品牌已多达近10款: 氮化镓充电器怎么选? www.yidianzixun.com...