Day39:安全开发-JavaEE应用SpringBoot框架Actuator监控泄漏Swagger自动化
目录
SpringBoot-监控系统-Actuator
SpringBoot-接口系统-Swagger
思维导图
Java知识点:
功能:数据库操作,文件操作,序列化数据,身份验证,框架开发,第三方组件使用等.
框架库:MyBatis,SpringMVC,SpringBoot,Shiro,Log4j,FastJson等
技术:Servlet,Listen,Filter,Interceptor,JWT,AOP,反射机制待补充
安全:SQL注入,RCE执行,反序列化,脆弱验证,未授权访问,待补充
安全:原生开发安全,第三方框架安全,第三方组件安全等,架构分析,待补充
SpringBoot-监控系统-Actuator
SpringBoot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理 Spring Boot 应用。
Actutor断点图
新建项目,创建 spring 项目,依赖选择 Web 中的 Spring Web,Ops 中的 Spring Boot Actuator


引入依赖,当创建项目时未选择 actuator 依赖时,可在配置文件 pom.xml 中自行引入
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
配置监控,在 application.properties 进行如下配置
# 这个配置项是用于指定要暴露的web端点。*表示暴露所有端点。
management.endpoints.web.exposure.include=*
# 这个配置项用于指定是否显示健康检查的详细信息。always表示总是显示详细信息。
management.endpoint.health.show-details=always
然后就可以通过上面的断点图访问到actutor,会泄露一些关键信息

这里面会暴露出很多敏感信息
安全配置:在 application.properties 进行如下配置,关闭某些端点的启用,防止敏感信息泄露
从这里也可以看出来,/actuator/env 和 /actuator/heapdump 这两个目录下爆出来信息是很敏感
management.endpoint.env.enabled=false
management.endpoint.heapdump.enabled=false
再次尝试访问/actuator/env,/actuator/heapdump就会访问失败
图像化 Server&Client 端界面
Server:引入Server依赖-开启(@EnableAdminServer)
application.properties 配置信息
# 应用服务 WEB 访问端口 server.port=8889spring.boot.admin.client.url=http://127.0.0.1:8888 management.endpoints.web.exposure.include=* management.endpoint.health.show-details=alwaysClient:引入Client依赖-配置(连接目标,显示配置等)
application.properties 配置信息
## 应用服务 WEB 访问端口 #server.port=8080 ##下面这些内容是为了让MyBatis映射 ##指定Mybatis的Mapper文件 #mybatis.mapper-locations=classpath:mappers/*xml ##指定Mybatis的实体目录 #mybatis.type-aliases-package=cn.xiaodi.testactuatordemo1.mybatis.entity ## Actuator Web 访问端口 #management.server.port=8081 #management.endpoints.jmx.exposure.include=* #management.endpoints.web.exposure.include=* #management.endpoint.health.show-details=alwaysserver.port=7777spring.datasource.url=jdbc:mysql://localhost:3306/demo01 spring.datasource.name=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Drivermanagement.endpoint.health.show-details=always management.endpoints.web.exposure.include=*management.endpoint.heapdump.enabled=false management.endpoint.env.enabled=false分别启动两个项目文件
安全问题:heapdump泄漏
得到对应heapdump包可以使用工具进行分析:获取到配置信息(分析提取出敏感信息(配置帐号密码,接口信息 数据库 短信 云应用等配置)
访问这个路径,下载/actuator/heapdump这个文件
工具使用:JDumpSpider提取器https://github.com/whwlsfb/JDumpSpider/releases
可以帮助我们自动化从中提取敏感信息,里面包含类信息,可以直接到很多配置信息
工具使用:jvisualvm分析器
安装jdk自带,文件搜索获取
如:D:\jdk1.8.0_112\bin\jvisualvm.exe测试安装:JDK1.8_112
下载JDK:http://www.itmop.com/downinfo/136203.html
其他利用见下文
https://blog.csdn.net/drnrrwfs/article/details/125242990
分析得到有一些组件(不安全的组件,如log4j)
SpringBoot-接口系统-Swagger
Swagger 是当下比较流行的实时接口文文档生成工具。接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发结束后在进行联调测试。参考:https://blog.csdn.net/lsqingfeng/article/details/123678701
创建项目引入依赖

引入依赖
2.9.2
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency>
3.0.0
<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency>
application.properties
# 应用服务 WEB 访问端口
server.port=8002
# 设置路径匹配策略为Ant路径匹配器
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
2.X 版本启动需要在启动文件添加注释 @EnableSwagger2
3.X 版本不需注释,写的话是 @EnableOpenApi
2.X 访问路径:http://ip:port/swagger-ui.html
3.X 访问路径:http://ip:port/swagger-ui/index.html

安全问题:
自动化测试:Postman
泄漏应用接口:用户登录,信息显示,上传文件等
可用于对未授权访问,信息泄漏,文件上传等安全漏洞的测试打开postman打开工作台,在左侧找到API
打开API导入生成的swagger页面提供的API:http://127.0.0.1:8080/v3/api-docs
导入成功后点击Api Documentation,点击右侧的运行,勾选想要测试的接口,执行即可
也可以批量化测试
思维导图

相关文章:
Day39:安全开发-JavaEE应用SpringBoot框架Actuator监控泄漏Swagger自动化
目录 SpringBoot-监控系统-Actuator SpringBoot-接口系统-Swagger 思维导图 Java知识点: 功能:数据库操作,文件操作,序列化数据,身份验证,框架开发,第三方组件使用等. 框架库:MyB…...
VsCode免密登录
创建本地密匙 按下WinR输入cmd,输入 ssh-keygen -t rsa然后连续回车直到结束 找到Your public key has been saved in C:\Users\Administrator/.ssh/id_rsa.pub,每个人都不一样找到密匙所在地 打开id_rsa.pub这个文件,可以用记事本打开&am…...
蓝桥杯第八届A组:分巧克力
题目描述 儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有 NN 块巧克力,其中第 ii 块是 HiWiHiWi 的方格组成的长方形。为了公平起见, 小明需要从这 NN 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克…...
前端框架的发展史介绍框架特点
目录 1.前端框架的发展历程 2.官网、优缺点、使用场景 2.1 jQuery 2.2 AngularJS 2.3 React 2.4 Vue.js 2.5 Angular 1.前端框架的发展历程 jQuery(2006年):jQuery是一个非常流行的JavaScript库,用于简化DOM操作和事件处理…...
【MatLab】之:Simulink安装
一、内容简介 本文介绍如何在 MatLab 中安装 Simulink 仿真工具包。 二、所需原材料 MatLab R2020b(教学使用) 三、安装步骤 1. 点击菜单中的“附加功能”,进入附加功能管理器: 2. 在左侧的“按类别筛选”下选择Using Simulin…...
动手学习深度学习之环境配置
创建conda虚拟环境 下载anaconda,安装到计算机,修改镜像源到国内 show_channel_urls: true channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- http://mirrors.tu…...
【机器学习300问】35、什么是随机森林?
〇、让我们准备一些训练数据 idx0x1x2x3x4y04.34.94.14.75.5013.96.15.95.55.9022.74.84.15.05.6036.64.44.53.95.9146.52.94.74.66.1152.76.74.25.34.81 表格中的x0到x4一共有5个特征,y是目标值只有0,1两个值说明是一个二分类问题。 关于决策树相关的前置知识&am…...
用云服务器构建gpt和stable-diffusion大模型
用云服务器构建gpt和stable-diffusion大模型 一、前置知识二、用云端属于自己的聊天chatGLM3step1、项目配置step2、环境配置1、前置知识2、环境配置流程 step3、创建镜像1、前置知识2、创建镜像流程 step4、通过 Gradio 创建ChatGLM交互界面1、前置知识2、创建ChatGLM交互界面…...
备考2024年小学生古诗文大会:历年真题15题练习和独家解析
最近有家长在问如何提高小学生古诗词的知识?如何激发小学生古诗词的学习兴趣?如何提高小学古诗词的学习成绩?如何备考2024年小学生古诗文大会?...我的建议是参加每年一度的小学生古诗词大会(免费参加,无参赛…...
C++之模板
本阶段主要针对C泛型编程和ST技术做详细讲解,探讨C更深层的使用 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性 模板的特点: 模板不可以直接使用,它只是一个框架 模板的通用并不是万能的 1.2 函数模板 C另一种编程思想称为 …...
Ubuntu Flask 运行 gunicorn+Nginx 部署
linux Ubuntu 下运行python 程序出现killed 原因:CPU或内存限制:在华为云上,你可能有CPU或内存使用的限制。例如,如果你使用的是一个固定大小的实例,那么超过该实例的CPU或内存限制可能会导致进程被杀死。 参考&am…...
Tuxera NTFS 2023安装使用教程 Tuxera NTFS破解版 Tuxera NTFS for Mac优惠
对于必须在Windows电脑和Mac电脑之间来回切换的Mac朋友来说,跨平台不兼容一直是一个巨大的障碍,尤其是当我们需要使用NTFS格式的硬盘在Windows和macOS之间共享文件时。因为Mac默认不支持写入NTFS磁盘。 为了解决这一问题,很多朋友会选择很便捷…...
Linux-centos如何搭建yum源仓库
1.本地搭建(无需连接外网) 1.1检查网络配置,及网络连接 打开虚拟机,点击【编辑——虚拟网络编辑器】 点击【仅主机模式】查看子网段是否和局内IP匹配 进入局内,查看网络IP是否在你上述设置的网段内,如果不…...
Vue组件中引入jQuery
两种在vue中引入jQuery的方式 1、普通html中使用jQuery 将jQuer的文件导入到项目中,然后直接使用<script src"jQuery.js"></script>即可。 <script src"jQuery.js"></script> 2、vue组件中使用jQuery 安装依赖 c…...
设计模式 --3:装扮模式
结构图 代码 #include<iostream>using namespace std;class person { public:person() {};person(string name) { this->name name; }virtual void show() {cout << "装扮的:" << this->name << endl;} private:string name; }; //装…...
element-plus中的表单校验
1. 简单校验: 1.1 在script中给出校验规则对象,主要属性名与form对象的属性名一致1.2 一个字段的校验规则可以有多个,值是一个数组,数组中的一个对象就是一条校验规则1.3 主要校验规则: 1.3.1 required:是…...
ros小问题之roslaunch tab补不全新增的功能包
在学习Gazebo这一章节时,通过catkin_create_pkg命令创建了仿真机械臂所需的软件包,创建完成后里面的内容直接拷贝了教材配套的文件,但在roslaunch时,摁tab键补不全新加的包。 重新source catkin_ws/devel/setup.bash不起作用&…...
C#常见的.Net类型(二)
目录 一、在集合中存储多个对象理解集合的选择1.列表2.字典3.堆栈4.队列5.集 二、使用Span、索引和范围Span索引范围 处理类型和属性1.特性2.创建自定义特性3.反射 一、在集合中存储多个对象 处理集合的常见类型 类型描述List动态大小的数组,可以按索引访问Dictio…...
oracle临时表空间不释放
项目报错 nested exception is java.sql.SQLException: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP 原因是临时表空间满了,临时表空间一直增长,未释放导致临时表空间使用率100%。 查询临时表空间使用率 --临时表空间利用率…...
Chapter 13 Techniques of Design-Oriented Analysis: The Feedback Theorem
Chapter 13 Techniques of Design-Oriented Analysis: The Feedback Theorem 从这一章开始讲负反馈Control系统和小信号建模. 13.2 The Feedback Theorem 首先介绍 Middlebrook’s Feedback Theorem 考虑下面负反馈系统 传输函数 Guo/ui G ( s ) u o u i G ∞ T 1 T G…...
tao-8k嵌入模型实测:Xinference免配置部署,长文本处理效率翻倍
tao-8k嵌入模型实测:Xinference免配置部署,长文本处理效率翻倍 1. 引言:长文本嵌入的工程挑战 在自然语言处理领域,文本嵌入模型扮演着至关重要的角色。它们将文本转换为高维向量表示,为语义搜索、文档聚类、问答系统…...
揭秘AI教材写作:低查重率,用AI轻松搞定教材编写难题!
编写教材需要丰富的资料作为基础,但传统的资料整理方式早已无法满足当前的需求。过去,课标文件、学术论文和教学案例等信息零散地散落在多个平台上,比如知网和教研网站,这让我们花费数天才筛选到有用的内容。而即使所有资料都收集…...
解锁Linux平台微信小程序开发:终极完整环境搭建指南
解锁Linux平台微信小程序开发:终极完整环境搭建指南 【免费下载链接】wechat-web-devtools-linux 适用于微信小程序的微信开发者工具 Linux移植版 项目地址: https://gitcode.com/gh_mirrors/we/wechat-web-devtools-linux 你是否曾为在Linux系统上无法使用微…...
5个视觉增强功能让Windows用户轻松打造玻璃态文件管理器
5个视觉增强功能让Windows用户轻松打造玻璃态文件管理器 【免费下载链接】ExplorerBlurMica Add background Blur effect or Acrylic (Mica for win11) effect to explorer for win10 and win11 项目地址: https://gitcode.com/gh_mirrors/ex/ExplorerBlurMica Windows文…...
GraphRAG实战:我是如何用它分析公司内部文档,让客服响应时间缩短近30%的
GraphRAG实战:我是如何用它分析公司内部文档,让客服响应时间缩短近30%的 作为一家中型电商企业的技术负责人,我最近半年一直在与客服团队的一个顽固问题搏斗:每当新品上线或促销活动期间,客服人员需要花费大量时间在不…...
基于yolov10的工地安全帽检测系统 有技术文档 能实现图像,视频和摄像实时检测 深度学习 python Django
一、系统涉及的技术 框架:pytorch 模型:yolo10n 编程语言:python 数据库:SQLite 界面:后端python Django,前端 Vue3 项目类型:目标检测 二、多模态检测能力 图像检测:支持用户…...
实战指南:用LLNet深度学习模型提升夜间监控画质(附Python代码)
实战指南:用LLNet深度学习模型提升夜间监控画质(附Python代码) 夜间监控画质提升一直是安防和无人机航拍领域的核心挑战。当光线不足时,传统ISP(图像信号处理器)往往难以平衡亮度增强与噪声抑制,…...
别再只调参了!深入DeepSORT的tracker.py:从轨迹管理到状态机,看懂跟踪器如何‘思考’
深入DeepSORT的tracker.py:从轨迹管理到状态机,看懂跟踪器如何‘思考’ 在目标跟踪领域,调试模型时遇到的ID频繁切换、轨迹断裂等问题往往令人头疼。许多开发者虽然能够跑通DeepSORT算法,但当需要针对特定场景优化时,却…...
【MobaXterm进阶】SSH连接稳定性优化:Keepalive与超时设置详解
1. 为什么SSH连接会频繁断开? 很多朋友在用MobaXterm远程连接服务器时都遇到过这样的困扰:明明连接得好好的,过一会儿就莫名其妙断开了。特别是当你正在执行一个耗时较长的任务时,突然中断简直让人抓狂。这种情况在家庭版用户中尤…...
React Overdrive核心组件深度解析:从API到实战
React Overdrive核心组件深度解析:从API到实战 【免费下载链接】react-overdrive Super easy magic-move transitions for React apps 项目地址: https://gitcode.com/gh_mirrors/re/react-overdrive React Overdrive是一款专为React应用设计的终极魔法移动过…...
















