039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第1张图片

#知识点:

1、JavaEE-SpringBoot-监控系统-Actuator
2、JavaEE-SpringBoot-接口系统-Swagger
3、JavaEE-SpringBoot-监控&接口&安全问题

演示案例:

➢SpringBoot-监控系统-Actuator
➢SpringBoot-接口系统-Swagger
➢安全案例-JVM泄漏&接口自动化

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第2张图片

#SpringBoot-监控系统-Actuator

SpringBoot Actuator模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP跟踪等,帮助我们监控和管理Spring Boot应用。

1、开发使用:

1、引入依赖
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-actuatorartifactId>
dependency>

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第3张图片

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第4张图片

2、配置监控
  • 暴露配置:

    • application.properties

      # 设置Spring Boot应用的端口为7777
      server.port=7777
      
      # 指定数据库连接的URL,使用MySQL数据库,连接本地主机(localhost)的3306端口上的名为dome01的数据库
      spring.datasource.url=jdbc:mysql://localhost:3306/dome01
      
      # 设置数据库的用户名为root
      spring.datasource.name=root
      
      # 设置数据库的密码为root
      spring.datasource.password=root
      
      # 指定MySQL数据库的JDBC驱动程序的类名
      spring.datasource.driver-class-name=com.mysql.jdbc.Driver
      
      **# 启用所有的Actuator端点,允许通过HTTP访问监控和管理端点
      management.endpoints.web.exposure.include=*
      
      # 在健康检查端点中显示详细信息,包括应用程序的各个健康指标
      management.endpoint.health.show-details=always**
      
    • application.yml

      management:
        endpoints:
          web:
            **# 允许通过HTTP访问所有的Actuator端点
            exposure:
              include: '*'**
      
  • 安全配置:关闭隐私泄露的的端点即可

    • application.properties

      **# 启用或禁用Env端点,false表示禁用
      management.endpoint.env.enabled=false
      
      # 启用或禁用Heap Dump端点,false表示禁用
      management.endpoint.heapdump.enabled=false**
      
    • application.yml

      management:
        endpoint:
          **# 启用或禁用Heap Dump端点,false表示禁用
          heapdump:
            enabled: false # 启用接口关闭
      
          # 启用或禁用Env端点,false表示禁用
          env:
            enabled: false # 启用接口关闭**
      

Untitled

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第5张图片

3、 图像化Server&Client端界面
  • Server:引入Server依赖-开启(@EnableAdminServer)

    039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第6张图片

    039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第7张图片

    Untitled

  • Client:引入Client依赖-配置(连接目标,显示配置等)

    039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第8张图片

    039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第9张图片

  • 分别启动两个项目文件

    039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第10张图片

    039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第11张图片

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第12张图片

2、安全问题

heapdump泄漏

得到对应heapdump包可以使用工具进行分析:获取到配置信息==(分析提取出敏感信息(配置帐号密码,接口信息 数据库 短信 云应用等配置)==

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第13张图片

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第14张图片

  • 工具使用:JDumpSpider提取器https://github.com/whwlsfb/JDumpSpider/releases

    java -jar JDumpSpider-1.1-SNAPSHOT-full.jar heapdump

    039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第15张图片

    039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第16张图片

  • 工具使用:jvisualvm分析器

    安装jdk自带,文件搜索获取
    如:D:\jdk1.8.0_112\bin\jvisualvm.exe
    
    测试安装:JDK1.8_112
    下载JDK:http://www.itmop.com/downinfo/136203.html
    

    039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第17张图片

    039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第18张图片

其他利用见下文
https://blog.csdn.net/drnrrwfs/article/details/125242990
分析得到有一些组件(不安全的组件,如log4j

#SpringBoot-接口系统-Swagger

Swagger是当下比较流行的实时接口文文档生成工具。接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发结束后在进行联调测试。
参考:https://blog.csdn.net/lsqingfeng/article/details/123678701

1、创建项目引入依赖

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第19张图片

<--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>

2、配置访问

  • application.properties

    # 设置路径匹配策略为Ant路径匹配器
    spring.mvc.pathmatch.matching-strategy=ant-path-matcher
    
  • application.yml

    spring:
      mvc:
        pathmatch:
          # 设置路径匹配策略为Ant路径匹配器
          matching-strategy: ant_path_matcher
    

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第20张图片

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第21张图片

注意事项:

2.X版本启动需要注释**@EnableSwagger2**
3.X版本不需注释,写的话是**@EnableOpenApi**
2.X访问路径:http://ip:port**/swagger-ui.html**
3.X访问路径:http://ip:port**/swagger-ui/index.html**

3、安全问题

自动化测试:Postman
泄漏应用接口:用户登录,信息显示,上传文件等
可用于对未授权访问,信息泄漏,文件上传等安全漏洞的测试.

  • 打开postman打开工作台,在左侧找到API
  • 打开API导入生成的swagger页面提供的API:http://127.0.0.1:8080/v3/api-docs
  • 导入成功后点击Api Documentation,点击右侧的运行,勾选想要测试的接口,执行即可

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第22张图片

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第23张图片

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第24张图片

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第25张图片

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第26张图片

039-安全开发-JavaEE应用&SpringBoot框架&Actuator监控泄漏&Swagger自动化_第27张图片

你可能感兴趣的:(安全,java-ee,spring,boot)