【技术升级】Docker环境下Nacos平滑升级攻略,安全配置一步到位

目前项目当中使用的Nacos版本为2.0.2,该版本可能存在一定的安全风险。软件的安全性是一个持续关注的问题,尤其是对于像Nacos这样的服务发现与配置管理平台,它在微服务架构中扮演着核心角色。随着新版本的发布,开发团队会修复已知的安全漏洞,并增强系统的整体安全性。因此要及时升级Nacos,避免因为安全问题,对项目造成影响。
关于Nacos配置不当导致的身份认证绕过漏洞的风险预警
漏洞描述
Nacos存在身份认证绕过漏洞,若用户Nacos未修改 secret.key,则攻击者可利用默认secret.key生成JWT Token,从而造成权限绕过访问到相关API接口。
受影响的版本
0.1.0 <= Nacos <= 2.2.0
整改措施
升级到安全版本,开启鉴权并修改token.secret.key和nacos用户的密码,同时避免在公网环境使用
升级Nacos
下载2.2.1版本的nacos
docker pull nacos/nacos-server:v2.2.1
Docker 环境启动 Nacos
参考连接:
https://nacos.io/zh-cn/docs/v2/guide/user/auth.html
使用官方镜像,请在启动docker容器时,添加如下环境变量
NACOS_AUTH_ENABLE=true
修改客户端配置
spring:cloud:nacos:discovery:username: ${NACOS_USERNAME:nacos_user} # nacos用户名password: ${NACOS_PASSWORD:nacos_password} # nacos密码config:username: ${spring.cloud.nacos.discovery.username}password: ${spring.cloud.nacos.discovery.password}
Nacos 页面配置
- 权限控制-用户列表-创建用户
- 权限控制-权限管理-添加权限
- 权限控制-角色管理-绑定角色
错误信息
客户端403提示
修改配置nacos.core.auth.enabled=true后,注册服务时提示
failed to req API:127.0.0.1:8848/nacos/v1/ns/instance. code:403
参考连接:
https://github.com/alibaba/nacos/issues/2426
解决办法:
重新启动客户端
Mysql 提示缺少字段
Unknown column 'encrypted_data_key' in 'field list'
看提示是数据表缺少encrypted_data_key字段,那就手动为据表添加该字段
为保证用户敏感配置数据的安全,Nacos 提供了配置加密的新特性。降低了用户使用的风险,也不需要再对配置进行单独的加密处理。
数据库表 config_info、config_info_beta、his_config_info中需要新增字段 encrypted_data_key ,用来存储每一个配置项加密使用的秘钥。新版本的默认创建表的sql中已经添加该字段。
config数据库的这三张表变一下,就OK了
ALTER TABLE config_info ADD COLUMN `encrypted_data_key` text NOT NULL COMMENT '秘钥' ;
ALTER TABLE config_info_beta ADD COLUMN `encrypted_data_key` text NOT NULL COMMENT '秘钥' ;
ALTER TABLE his_config_info ADD COLUMN `encrypted_data_key` text NOT NULL COMMENT '秘钥' ;
相关文章:
【技术升级】Docker环境下Nacos平滑升级攻略,安全配置一步到位
目前项目当中使用的Nacos版本为2.0.2,该版本可能存在一定的安全风险。软件的安全性是一个持续关注的问题,尤其是对于像Nacos这样的服务发现与配置管理平台,它在微服务架构中扮演着核心角色。随着新版本的发布,开发团队会修复已知的…...
[题解]CF1401E.Divide Square(codeforces 05)
题目描述 There is a square of size 106106106106 on the coordinate plane with four points (0,0)(0,0) , (0,106)(0,106) , (106,0)(106,0) , and (106,106)(106,106) as its vertices. You are going to draw segments on the plane. All segments are either horizonta…...
软考高级第四版备考--第32天(新一代信息技术及应用)
1、物联网 1.1技术基础 1.1.1感知层:由各种传感器构成,包括温度传感器,二维码标签、RFID标签和读写器,摄像头,GPS等感知终端。感知层是物联网识别物体、采集信息的来源。 1.1.2网络层:由各种网络&#x…...
【RabbitMQ】MQ相关概念
一、MQ的基本概念 定义:MQ全称为Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件。它允许应用程序通过读写队列中的消息来进行通信,而无需建立直接的连接。作用:主要用于分布式系统之间的通信&#x…...
【MySQL是怎样运行的 | 第二篇】MySQL三大日志文件
文章目录 2.MySQL三大日志文件2.1日志文件列表2.1.1 redo log2.1.2 bin log2.1.3 undo log 2.2redo log日志详讲2.3 binglog和redo log有什么区别?2.4一条更新语句的执行过程 2.MySQL三大日志文件 2.1日志文件列表 redo log:重做日志,记录了…...
视图、存储过程、触发器
一、视图 视图是从一个或者几个基本表(或视图)导出的表。它与基 本表不同,是一个虚表,视图只能用来从查询,不能做增删改(虚拟的表) 1.创建视图 创建视图的语法: create view 视图名【view_xxx / v_xxx】 a…...
【学习笔记】解决Serial Communication Library编译问题
【学习笔记】解决编译 Serial Communication Library 时的 Catkin 依赖问题 Serial Communication Library 是一个用 C 编写的用于连接类似 rs-232 串口的跨平台库。它提供了一个现代的 C 接口,它的工作流程设计在外观和感觉上与 PySerial 相似,但串口速…...
在 Windows 环境下实现负载均衡:提升系统性能与可靠性的关键技术
Windows 环境下的负载均衡:提升系统性能与可靠性的关键技术 负载均衡(Load Balancing)是现代网络架构中不可或缺的一部分,通过将请求分配到多台服务器上来提高系统的性能和可靠性。本文将介绍在 Windows 环境下使用负载均衡的基本…...
【Linux】-----工具篇(自动化构建工具make/makefile)
目录 前言 一、是什么? 二、怎么样的? 三、原理及细节 图解代码 细节1:make工作规则 ①依赖文件存在 ②依赖文件不存在 ③依赖文件列表为空(特殊) .PHONY关键字 细节2:makefile识别程序需要重新编译? 四、…...
图的遍历:深度优先搜索(DFS)
引言 图遍历是指按照一定的顺序访问图中的每个顶点。遍历图的两种主要方法是深度优先搜索(Depth-First Search, DFS)和广度优先搜索(Breadth-First Search, BFS)。本文将详细介绍深度优先搜索的定义、算法及其实现。 深度优先搜…...
普元EOS学习笔记-某些版本的EOS提供的maven获取依赖失败的问题解决
前言 普元EOS的开发包中,提供了maven,因为EOS项目的某些依赖只能从普元官方仓库获取,因此,编译EOS项目必须使用EOS提供的maven。 maven拉取依赖失败 某些版本的EOS提供的maven在编译EOS项目的时候会出现拉取失败的现象。 [FATA…...
Pycharm + Pyside6
1. 使用 Qt designer 创建 UI 文件 2. 使用 UIC 工具生成 ui_.py 文件 3. 自定义类导入ui.py 文件的窗口类 4.自定义窗口继承UI窗体类 5. self.setupUi(self) from PySide6.QtWidgets import QApplication, QWidget, QComboBox, QVBoxLayout from ui_test import Ui_Formc…...
强化学习之价值迭代算法动态规划求解悬崖漫步环境(CliffWalking)最优策略及最优状态价值函数
class CliffWalkingEnv:def __init__(self,ncol12,nrow4):self.ncolncol#定义网格世界的列self.nrownrow#定义网格世界的行self.Pself.createP()#转移矩阵P[state][action][(p,next_state,reward,done)]包含下一个状态和奖励def createP(self):P[[[]for i in range(4)]for j in…...
javascript deriveKey和deriveBits()由主密钥派生出新的密钥进行加密
deriveKey 方法的完整示例,演示如何使用 HMAC 作为密钥派生函数(KDF)来从一个给定的秘密(如密码)派生出一个新的 AES 加密密钥。 //创建一个函数来生成随机盐function getRandomSalt(length){let arraynew Uint8Array…...
基于微信小程序的自习室选座系统/基于Java的自习室选座系统/自习室管理系统的设计与实现
获取源码联系方式请查看文章结尾🍅 摘要 自习室选座是学校针对用户必不可少的一个部分。在学校的整个过程中,学生担负着最重要的角色。为满足如今日益复杂的管理需求,各类微信小程序自习室选座也在不断改进。本课题所设计的小程序自习室选座系…...
echarts所遇到的问题,个人记录
TreeMap 矩形树图,label设置富文本之后,无法垂直居中 font-size 支持rem,其余不支持 font-size 支持 rem,但是其余的属性如height,width等不支持 echarts-for-react 绑定事件,会覆盖实例上绑定的 当给cha…...
Skyeye云智能制造企业版源代码全部开放
智能制造一体化管理系统 [SpringBoot2 - 快速开发平台],适用于制造业、建筑业、汽车行业、互联网、教育、政府机关等机构的管理。包含文件在线操作、工作日志、多班次考勤、CRM、ERP 进销存、项目管理、EHR、拖拽式生成问卷、日程、笔记、工作计划、行政办公、薪资模…...
Springboot 整合Elasticsearch
1 java操作ES方式 1.1 操作ES 9300端口(TCP) 但开发中不在9300进行操作 ES集群节点通信使用的也是9300端口如果通过9300操作ES,需要与ES建立长连接 可通过引入spring-data-elasticsearch:transport-api.jar不在9300操作原因:1.springboot版本不同&…...
WeNet环境配置与aishell模型训练
WeNet环境配置与aishell模型训练 1环境配置 踩坑记录: 系统使用win11,我根据wenet官方文档,使用conda虚拟环境安装了cuda12.1,安装wenet依赖库,其中deepspeed报错,根据报错信息查询github,发现…...
【C++的剃刀】我不允许你还不会AVL树
学习编程就得循环渐进,扎实基础,勿在浮沙筑高台 循环渐进Forward-CSDN博客 Hello,这里是kiki,今天继续更新C部分,我们继续来扩充我们的知识面,我希望能努力把抽象繁多的知识讲的生动又通俗易懂,今天要…...
ARM SME指令集与UMLSL指令深度解析
1. ARM SME指令集与向量处理概述在现代处理器架构中,向量处理技术已成为提升计算性能的关键手段。作为ARMv9架构的重要扩展,SME(Scalable Matrix Extension)指令集引入了革命性的矩阵运算能力,特别针对机器学习、数字信…...
WSL2开发环境部署
系统要求 安装前需要确保设备满足以下条件: 操作系统: Windows 10版本2004(内部版本19041)或Windows 11(按Win R输入winver查看版本)。硬件: 64 位处理器(需要在BIOS中启用虚拟化,Intel VT-x/AMD-V) 至少4GB内存(推荐8GB)。 20GB以上存储空间(建议SSD)。 启用必要功能 …...
Google I/O 2026 | 开发者主题演讲精华集锦
作者 / Google I/O 团队AI 已不再只是提供辅助,而是迈向了能够在整个工作流中独立处理复杂任务的智能体阶段。在今年的 I/O 大会上,我们发布了 Gemini 3.5 系列模型,并升级了我们的 "智能体优先" 式开发平台 Antigravity࿰…...
Godot 4.2 2D游戏开发:用TileMap图层一键搞定游戏地图的可行走区域
Godot 4.2 2D游戏开发:用TileMap图层一键搞定游戏地图的可行走区域在2D游戏开发中,地图设计往往是最耗时的环节之一。传统方法需要开发者手动绘制碰撞体或编写复杂的导航逻辑,而Godot 4.2的TileMap导航层功能彻底改变了这一局面。想象一下&am…...
gmapping算法源码实现分析(一)
gmapping算法源码实现分析(一) —— slam-gmapping功能包主干流程分析 1. slam_gmapping.cpp 初始化流程: SlamGmapping() 构造函数├─> init() - 创建 GridSlamProcessor 实例,读取参数└─> startLiveSlam() - 设置订阅和回调├─&g…...
山东大学软件学院项目实训-基于语言大模型的智能居家养老健康守护系统-个人博客(五)
智能健康陪诊与个性化干预 Agent 的设计与实现 前言 在基于语言大模型的智能居家养老系统中,我主要负责面向老人端的两个核心 AI Agent 的构建:健康陪诊 Agent 与 健康干预 Agent。前者作为首页全科问答入口提供 24 小时健康咨询服务,后者深度…...
如何快速部署AI交易系统:面向新手的3种完整方案指南
如何快速部署AI交易系统:面向新手的3种完整方案指南 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 还在为复杂的量化交易系统搭建而…...
别再让Ubuntu卡成PPT!手把手教你用swapfile把交换空间从1G扩容到64G(附权限修复)
Ubuntu系统Swap空间扩容实战:从1G到64G的完整解决方案当你在Ubuntu上运行内存密集型任务时,是否遇到过系统突然变得异常缓慢,甚至完全卡死的情况?很多拥有大内存(如32GB或更高)的用户可能会惊讶地发现&…...
别再只认ldd了!盘点5种查看Linux程序动态库依赖的方法(含静态/交叉编译场景)
超越ldd:Linux二进制依赖分析的5种专业方法解析在Linux系统管理和开发中,遇到"不是动态可执行文件"的错误提示时,很多工程师的第一反应是困惑——明明是可执行文件,为什么ldd无法识别?这个问题背后隐藏着Lin…...
07-大模型智能体开发工程师:提示词工程(Prompt Engineering)
系列文章导航:AI系列文章导航目录-持续更新中 第07课:提示词工程(Prompt Engineering) 📝 本文摘要:本文系统讲解提示词工程的核心认知和方法论,包括六大设计原则(清晰明确、给出示例…...
