当前位置: 首页 > news >正文

web应用安全和信息泄露

使用springboot开发的应用可能存在各种使用不当导致的信息泄露和漏洞,在此记录

1:spring actuator导致的信息泄露

使用spring actuator你可以选择通过使用HTTP端点或使用JMX来管理和监控你的应用程序。 审计、健康和指标收集也可以自动应用于你的应用程序。
使用maven依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>
</dependencies>
1.1、Endpoint配置启用检测

Actuator 端点(endpoint)让你可以监控并与你的应用程序互动。 Spring Boot包括一些内置的端点,并允许你添加自己的端点。 例如, 端点提供基本的应用程序健康信息:health

比如在application.yaml中配置

# Actuator 监控端点的配置项
management:endpoints:web:base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuatorexposure:include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * 可以开放所有端点。

但是在开启 include: ‘*’ 或者开启heapdump之后会存在信息泄露
可用已通过访问http://127.0.0.1:port/actuator/env 获取程序运行的所有的配置信息(包括application配置文件系统的默认配置等)在这里插入图片描述
或者直接访问http://127.0.0.1:port/actuator/heapdump下载内存分析文件。里面可能会泄露配置的连接数据库的密码,ip等信息。

1.2、信息泄露复现

1、开启端点

management:endpoints:web:base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuatorexposure:include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * 可以开放所有端点。

2、下载堆分析文件:http://127.0.0.1:port/actuator/heapdump
3、使用jvm堆分析工具分析JVM堆的heapdump:比如jdk自带的JDK自带的JVisualVM工具开源的https://github.com/wyzxxz/heapdump_tool
下载jar包后在运行目录下运行:后面的heapdump就是你下载的分析文件
在这里插入图片描述
输入0或者1选择分析的模式,选0即可
后输入passowrd就会开始查找,最终查询的结果会打印出来同时会写到当前目录下的*_output.txt文件中
在这里插入图片描述
里面可能存在配置的数据库密码等导致信息泄露

1.3、防御

方案1:禁用heapdump,使得无法访问堆分析文件
exclude: ‘heapdump’

management:endpoints:web:base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuatorexposure:include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。exclude: 'heapdump'   #禁用headump

此时重启程序再访问就访问不到了
在这里插入图片描述
方案2:结合Spring Security限制URL访问的规则

2:服务端口的合理使用

合理开通防火墙端口。
对于mysql,redis,后端的服务端口不应该暴漏给公网上,只允许在内网通过前端连接后台,后台连接数据库。
严格区分生产和测试数据库。有时候为了测试方便会开放测试数据库的端口给公网,注意区分生产上

3:弱密码管理

对于数据库redis必须设立密码,对于mysql\redis\应用的登录入口严禁使用弱密码如123456、admin123、admin\admin等常见密码,非常容易被彩虹表破解。建议设立的复杂一些

4:服务端攻击

5:客户端攻击

5.1、跨站脚本(XSS)攻击

知识点简介
存在三种XSS类型,通常针对用户的浏览器:

反射式XSS:应用程序或API包括未经验证和未经转义的用户输入,作为HTML输出的一部分。一个成功的攻击可以让攻击者在受害者的浏览器中执行任意的HTML和JavaScript。 通常,用户将需要与指向攻击者控制页面的某些恶意链接进行交互,例如恶意漏洞网站,广告或类似内容。

存储式XSS:你的应用或者API将未净化的用户输入存储下来了,并在后期在其他用户或者管理员的页面展示出来。 存储型XSS一般被认为是高危或严重的风险。

基于DOM的XSS:会动态的将攻击者可控的内容加入页面的JavaScript框架、单页面程序或API存在这种类型的漏洞。理想的来说,你应该避免将攻击者可控的数据发送给不安全的JavaScriptAPI。

典型的XSS攻击可导致盗取session、账户、绕过MFA、DIV替换、对用户浏览器的攻击(例如:恶意软件下载、键盘记录)以及其他用户侧的攻击。

5.2、CSRF 攻击
5.3、点击劫持
http://www.lryc.cn/news/486789.html

相关文章:

  • 创建vue3项目步骤
  • 尽量通俗易懂地概述.Net U nity跨语言/跨平台相关知识
  • 【AlphaFold3】开源本地的安装及使用
  • vue2/vue3中使用的富文本编辑器vue-quill
  • 论文阅读《BEVFormer v2》
  • 自动化运维(k8s):一键获取指定命名空间镜像包脚本
  • HarmonyOS ArkUI(基于ArkTS) 开发布局 (上)
  • 第九部分 :1.STM32之通信接口《精讲》(USART,I2C,SPI,CAN,USB)
  • 5. langgraph中的react agent使用 (从零构建一个react agent)
  • uniapp vue3的下拉刷新和上拉加载
  • STM32设计井下瓦斯检测联网WIFI加Zigbee多路节点协调器传输
  • Vue 3 中的原生事件监听与组件事件处理详解
  • Flink Source 详解
  • 2024年了,TCP分析工具有哪些?
  • SRP 实现 Cook-Torrance BRDF
  • MySQL慢日志
  • Flutter网络通信-封装Dio
  • matlab 读取csv
  • 网络层9——虚拟专用网VPN和网络地址转换NAT
  • 开源科学工程技术软件介绍 – EDA工具KLayout
  • 【网络安全】Cookie SameSite属性
  • Linux 命令 | 每日一学,文本处理三剑客之awk命令实践
  • RabbitMQ的工作队列在Spring Boot中实现(详解常⽤的⼯作模式)
  • 【web前端笔记】vue3 + vite的前端项目中,使用import.meta.glob()方法实现全局注册组件的通用代码
  • 保险行业建立知识管理系统:提高效率和安全性的策略
  • 小程序如何完成订阅
  • JS学习日记(jQuery库)
  • Uni-APP+Vue3+鸿蒙 开发菜鸟流程
  • Linux的基本用法
  • 如何找出爬取网站的来源IP呢?