记录一下Nacos和XXLJOB修复漏洞

仔细查看了你上传的 application.properties 文件,我发现了导致你被扫描出漏洞的 "致命"配置,同时也为你准备好了完整的修改方案。

你需要做 两步 修改:

第一步:最关键的修改(填补安全漏洞)

在你的配置文件第 185行 左右,有一行配置 nacos.security.ignore.urls。这行配置定义了哪些路径 不需要登录就能访问。

当前配置(有漏洞):

nacos.security.ignore.urls=/,/error,//*.css,/ /.js,/**/ .html,//*.map,/ /.svg,/**/ .png,//*.ico,/console-ui/public/ ,/v1/auth/,/v1/console/health/ ,/actuator/,/v1/console/server/**

注意到了吗?你显式地将 /actuator/** 加入了白名单!这意味着任何人访问监控端点都不需要输入账号密码。必须把它删掉。

修改后(安全):

properties 复制代码
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/v1/console/server/**

(删除了 /actuator/**)


第二步:添加 Actuator 加固配置

在配置文件的 Metrics Related Configurations 区域(大约第 60 行),或者文件末尾,加入我们刚才讨论的"隐身"配置。

建议添加的内容:

properties 复制代码
#*************** Actuator Security Fix (新增安全配置) ***************#
# 1. 默认关闭所有监控端点
management.endpoints.enabled-by-default=false
# 2. 仅开启健康检查 (为了不影响服务存活检测)
management.endpoint.health.enabled=true
# 3. Web 层面只暴露 health
management.endpoints.web.exposure.include=health
# 4. 修改 Actuator 默认路径 (这是过扫描器的关键,将 /actuator 隐藏起来)
management.endpoints.web.base-path=/managepro09876dconfigprops123werewrewrewcxvcvcvnhjgjk

汇总:你应该怎么改

你可以直接复制下面的内容,替换你文件中对应部分,或者直接追加修改。

1. 找到第 185 行,替换为:

properties 复制代码
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/v1/console/server/**

2. 找到第 60 行 Metrics Related Configurations 附近,加入:

properties 复制代码
#*************** Metrics Related Configurations ***************#
### Metrics for prometheus
#management.endpoints.web.exposure.include=prometheus

# --- 开始新增 ---
management.endpoints.enabled-by-default=false
management.endpoint.health.enabled=true
management.endpoints.web.exposure.include=health
management.endpoints.web.base-path=/managepro09876dconfigprops123werewrewrewcxvcvcvnhjgjk
# --- 结束新增 ---

修改后的效果

  1. 扫描器失效 :原本访问 IP:8848/nacos/actuator 的扫描器会直接报 404 Not Found。
  2. 权限收回 :即使攻击者猜到了那串乱码路径,因为你在第一步中把 /actuator/** 从白名单删除了(且路径已变),Nacos 的鉴权拦截器会拦截请求,要求登录。
  3. 服务正常:Nacos 自身的核心功能不受影响。

修改完保存文件,重启 Nacos 服务 即可生效。

是的,这个必须改!

在你的 xxl-job 配置文件中,第 6行 直接把弱点暴露给了攻击者:

properties 复制代码
management.server.base-path=/actuator

这行配置不仅开启了 Actuator,还显式地告诉所有人:"我的监控地址就在默认的 /actuator 路径下,快来扫我!"

为了保持和你刚才 Nacos 修改方案的一致性(隐蔽+安全),建议采用相同的策略。

修改方案

请在配置文件中找到第 5-6 行 (Actuator 相关配置),将其替换为以下内容:

properties 复制代码
### actuator (已修复未授权访问漏洞)
# 1. 默认关闭所有端点
management.endpoints.enabled-by-default=false
# 2. 仅开启 health (健康检查)
management.endpoint.health.enabled=true
# 3. Web 暴露只包含 health
management.endpoints.web.exposure.include=health
# 4. 关键:修改默认路径,让扫描器扫不到 (使用和你 Nacos 一样的随机串)
management.endpoints.web.base-path=/managepro09876dconfigprops123werewrewrewcxvcvcvnhjgjk

# 原有的配置建议注释掉或删除
# management.server.base-path=/actuator
management.health.mail.enabled=false

为什么这样做更安全?

  1. 移除了靶子 :你原本的配置 management.server.base-path=/actuator 就像在门口挂了个牌子说"钥匙在脚垫下"。注释掉它,攻击者就无法通过默认字典扫到。
  2. 隐藏了入口 :新的 base-path 把路径改成了那串很长的乱码,除了你没人猜得到。
  3. 最小化权限 :即使有人运气好猜到了路径,exposure.include=health 确保了他们只能看到"服务是活着的",而看不到数据库密码、环境变量等敏感信息。

修改完保存后,记得重启 XXL-JOB Admin 服务!

相关推荐
wuminyu28 分钟前
Java字节码学习总结:字节码如何加载、解析和执行
java·linux·c语言·jvm·c++
Flynn Liang1 小时前
大模型怎么自己调函数?Spring AI 2.0 Tool Calling 自动循环原理 + 完整时序图
java·人工智能·spring·agent·函数调用·springai·toolcalling
乌暮2 小时前
请求进门先安检:Spring 拦截器与统一功能实战指南
java·开发语言·后端·学习·spring
学长毕设2 小时前
基于SpringBoot的烘焙商品商品系统-附源码
java·spring boot·后端
金銀銅鐵3 小时前
[Java] 用纯 Swing 做一个《論語·學而》阅读器
java·ai编程·交互设计
艾伦_耶格宇3 小时前
【kubernetes - 1.28版本】-11 K8S核心组件
java·容器·kubernetes
2301_780789664 小时前
深度伪造即服务:新型网络诈骗的“完美面具”与识别之道
java·网络·ddos
LHICOD4 小时前
Linux-2
java·linux·后端·jar·vmware·svm·vm
香蕉大香蕉(06敬畏市场)4 小时前
MySQL 单点详解(03)
java·数据库·mysql·面试·八股·大厂实习
呆呆敲代码的小Y4 小时前
【实战精选面试题】C# 面试题详细解答,按难易程度排序
android·java·游戏·c#·游戏开发·unity面试题·c#面试题