Spring Boot Actuator未授权访问漏洞 【原理扫描】修复

Spring Boot Actuator未授权访问漏洞 【原理扫描】修复

一、背景

漏洞名称:Spring Boot Actuator未授权访问漏洞 【原理扫描】
风险等级:中

详细描述
Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息。


二、问题分析与复现

部署的微服务项目中,访问 http://ip:port/actuator 时,未受到任何权限控制,直接暴露了 Actuator 的接口信息。应用在生产环境中暴露了潜在的敏感信息,存在较大的安全隐患。

通过浏览器或命令行工具(如 curl)可以访问下面的端点:

  • /actuator/health
  • /actuator/env
  • /actuator/info

这些端点中,envhealth(开启详细信息时)可能泄露系统环境变量、配置属性、数据库连接信息等敏感数据。


三、解决方法

1. 更改初始配置的 3 种方式

漏洞扫描时项目初始配置如下:

management:endpoints:web:exposure:include:'*'endpoint:health:show-details: always 

浏览器访问或使用 curl -i http://ip:port/actuator请求,会返回敏感数据。

1.1 开放指定端点,显示简略信息

然后调整到下面这样:

management:endpoints:web:exposure:# 我用的springboot版本是2.3,actuator接口还是会返回200,但是子接口模禁掉了。#exclude: '*'include:"health,info"endpoint:health:show-details: never 

改成这个后浏览器可以直接访问,访问结果如图所示。



敏感的环境信息没有返回,/actuator 返回的是导航菜单,/actuator/health 返回服务是否存活,所以基本可以确认安全了。

show-details 控制接口内容返回详细程度,有三个可选值:

可选值含义 返回内容安全性适用场景
NEVER (默认值)“从不显示细节” 访问时只告诉你“UP”还是“DOWN”,不解释原因。{"status": "UP"}🟢 (最安全)生产环境推荐。 给 K8s 或负载均衡做存活检查用。
WHEN_AUTHORIZED“认证后显示” 游客看简略信息,登录后的管理员看详细信息。未登录:{"status": "UP"}
已登录: 显示磁盘、DB 等详情
🟡 (需配置 Security)既需要监控又需要安全的场景。 前提: 必须集成了 Spring Security 并配置了角色。
ALWAYS“总是显示” 只要能访问接口,就可以查看详细内容。{"status": "UP", "components": {"db": {...}, "diskSpace": {...}}}🔴 (危险)仅限开发/测试环境

虽然人工确认安全,但是安全扫描工具还是判定为漏洞,这时有两种解决方式,一种是变更默认路径,一种是彻底关闭Actuator。

1.2 修改默认访问路径

运维时需要检查项目的健康状况等信息,不适合关闭Actuator,所以只能修改默认访问路径,记得用到Actuator 的配置或路径也需要同步修改。漏洞工具只会扫描默认路径,这也是另外一种规避,但需要自己配置正确,不要返回敏感信息。

management:endpoints:web:exposure:include:"health,info"base-path: /checkactuator # 这个配置在某些springboot版本不一定有效,作用是关掉 /actuator 接口。#discovery:#enabled: falseendpoint:health:show-details: never 

重启服务后访问,,访问原默认路径:

访问修改后路径:

好了,扫描通过。

1.3 彻底关闭

如果确定不使用了,可以选择彻底禁用 Actuator 模块,防止任何端点在生产环境中暴露。

management:server:port:-1

这个配置直接关闭了 Actuator 的服务端口,使其完全不可访问,验证结果如下:

  • /actuator/health → 404
  • /actuator/env → 404
  • /actuator/info → 404

通过 curl、浏览器等方式均无法访问,说明已彻底关闭。


2. Spring Security 配置(未尝试)

官方建议使用 Spring Security 对 Actuator 接口添加认证控制,例如:

spring:security:user:name: admin password: xxx 

这个配置会影响整个应用的安全机制,导致所有接口均需登录认证。避免影响正常业务调用,没有调试这个。

还有通过自定义 SecurityConfig 类,对 /actuator/** 接口设置认证规则,项目由客户维护,改代码重测有点麻烦,没用它。

3. Nginx 拦截

使用 Nginx 拒绝所有 /actuator 开头的请求:

location ^~ /actuator { deny all; return 403; } 

有用。


四、总结

Spring Boot Actuator 提供了丰富的监控能力,但在未做好权限控制的情况下存在严重的安全风险。尤其是在微服务架构中,Actuator 常被用于服务发现与健康检查,其默认暴露行为容易被忽视,成为安全薄弱点。

本次修复过程的关键经验总结如下:

  • 配置项需精确匹配版本:部分配置项在不同 Spring Boot 版本中行为存在差异,需结合版本文档验证。
  • 默认配置不可依赖:不要假设 Actuator 默认是安全的,必须手动限制暴露的端点。
  • 彻底关闭是最保险的措施:如果线上无必要使用 Actuator,建议直接关闭,避免漏洞根源。

Read more

AiOnly大模型深度测评:调用GPT-5 API+RAG知识库,快速构建智能客服机器人

AiOnly大模型深度测评:调用GPT-5 API+RAG知识库,快速构建智能客服机器人

声明:本测试报告系作者基于个人兴趣及使用场景开展的非专业测评,测试过程中所涉及的方法、数据及结论均为个人观点,不代表任何官方立场或行业标准。 引言 AI 技术加速渗透各行各业的今天,你是否也面临这样的困境:想调用 GPT-5、Claude4.5等顶尖模型却被海外注册、跨平台适配搞得焦头烂额?想快速搭建智能客服、内容生成工具,却因模型接口差异、成本不可控而望而却步?或是作为中小团队,既想享受 AI 红利,又受限于技术门槛和预算压力? AiOnly平台的出现,正是为了打破这些壁垒。 本文将从实战角度出发,带你全方位解锁这个「全球顶尖大模型 MaaS 平台」:从 5 分钟完成注册到 API 密钥创建,从单模型调用到融合 RAG 知识库的智能体开发,然后手把手教你在 Windows 环境部署一个日均成本不足 0.5 元的电商客服机器人。无论你是 AI 开发者、企业运营者,还是想低成本尝试 AI

By Ne0inhk
【Part 3 Unity VR眼镜端播放器开发与优化】第四节|高分辨率VR全景视频播放性能优化

【Part 3 Unity VR眼镜端播放器开发与优化】第四节|高分辨率VR全景视频播放性能优化

文章目录 * 《VR 360°全景视频开发》专栏 * Part 3|Unity VR眼镜端播放器开发与优化 * 第一节|基于Unity的360°全景视频播放实现方案 * 第二节|VR眼镜端的开发适配与交互设计 * 第三节|Unity VR手势交互开发与深度优化 * 第四节|高分辨率VR全景视频播放性能优化 * 一、挑战分析与目标设定 * 1.1 主要瓶颈 * 1.2 目标设定 * 二、硬解与软解方案选型 * 2.1 平台解码能力检测 * 2.2 推荐策略 * 三、视野裁剪与分块播放 * 3.1 原理说明 * 3.2 实现流程图 * 3.3 伪代码 * 四、动态降级与多码率自适应 * 4.1

By Ne0inhk
【VR音游】音符轨道系统开发实录与原理解析(OpenXR手势交互)

【VR音游】音符轨道系统开发实录与原理解析(OpenXR手势交互)

VR音游音符轨道系统开发实录与原理解析 在 VR 音游的开发过程中,音符轨道系统是最核心的交互与可视化部分。本文结合一次完整的开发实录,分享从核心原理与设计到VR内容构建的完整过程,帮助读者快速理解音符轨道系统的实现思路。 文章目录 * VR音游音符轨道系统开发实录与原理解析 * 一、实录结果 * 二、VR内容开发步骤 * 1. 准备音符与交互逻辑 * 2. 创建谱面 * 3. 绘制音轨 * 4. 预制件与音频替换 * 三、原理解析(音符轨道系统) * 1. 音符轨道(Note Track) * 2. 轨迹调节与偏移控制 * 3. 音符触摸激活 * 4. 谱面编辑工具(Editor 功能) * 四、总结与展望 * 1. 成果回顾:从零到一的核心突破 * 2. 技术总结:核心设计理念 * 3. 开发难点与问题反思 * 4. 优化策略与改进方向 * 5.

By Ne0inhk

5分钟搭建ClawdBot个人AI助手:零配置Telegram翻译机器人实战

5分钟搭建ClawdBot个人AI助手:零配置Telegram翻译机器人实战 本文手把手带你用一条命令启动ClawdBot——一个开箱即用的本地化AI助手,支持实时翻译、语音转写、图片OCR、天气汇率查询等多模态能力,全程无需修改配置文件,树莓派也能流畅运行 1. 为什么你需要ClawdBot? 你有没有遇到过这些场景: * 在Telegram群聊里,外国朋友发来一长段日文消息,你只能靠截图+手动复制到网页翻译器,来回切换太折腾; * 收到一张带文字的菜单照片,想立刻知道价格和菜品名,却要先存图、再打开OCR App、再粘贴翻译; * 出差前想查东京实时天气和日元兑人民币汇率,得分别打开三个App,输入三次关键词。 ClawdBot就是为解决这些“小而烦”的问题诞生的。它不是另一个需要注册账号、绑定API密钥、调参调半天的AI玩具,而是一个真正属于你自己的、装好就能用的AI桌面助理。 它的核心特点很实在: * 真·零配置:不需要填Token、不改.env、不配代理(国内网络友好); * 全本地处理:语音用Whisper tiny模型本地转写,图片用Paddle

By Ne0inhk