微服务实战|集中配置组件Config规避敏感信息泄露

JS敏感信息泄露:不容忽视的WEB漏洞 0x00 前言 这段时间jsonp漏洞再一次证明了一个微小的漏洞,经过攻击者的巧妙而持久的利用,也会对企业和用户造成巨大的危害。而本文将要介绍的JS泄露敏感信息问题也是如此,攻击者不仅可以轻松收集用户手机号,姓名等隐私信息,更可以借此攻入企业后台甚至是getshell。本文将通过一些公开和未公开的漏洞详细阐述此类漏洞。 0x01 漏洞成因 JavaScript作为一种相当简单但功能强大的客户端脚本语言,本质是一种解释型语言。所以,其执行原理是边解释边运行。上述特性就决定了JavaScript与一些服务 阅读详情

前言

项目应用中,数据库连接信息、Access-key、Secret-key等由于其及其敏感和特殊性,一旦泄露出去就很可能会使得应用遭到黑客攻击,例如数据库账号密码泄露可能导致“拖库”,甚至数据丢失。此等事件偶有发生,那么,在分布式微服务项目中,怎么避免这种情况呢?

一、Spring Cloud Config简介

在这里插入图片描述

在分布式系统中,由于应用被拆分成数量巨多的小服务,另外应用也部署在不同的环境之中,如dev、int、uat、prod等,各个环境的配置不尽相同,为了方便配置文件统一管理,所以需要分布式配置中心组件。

配置文件统一管理之后,各个环境只能获取对应环境的配置信息,开发人员也只能获取到开发环境的配置信息,就能在一定程度上避免敏感信息的泄露。

Spring Cloud Config作为分布式配置中心组件 ,包括Config 服务端,和Config 客户端。

  • Config Server是一个可横向扩展、集中式的配置服务器,它用于集中管理应用程序各个环境下的配置,默认使用Git存储配置文件内容,也可以使用SVN存储,或者是本地文件存储。

  • Config Client是Config Server的客户端,用于操作存储在Config Server中的配置内容。微服务在启动时会请求Config Server获取配置文件的内容,请求到后再启动容器。

Config实战

1、创建项目config服务端

创建子模块config-server,pom.xml引入eureka-client 和config-server的依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

2、创建配置文件

新建config-server自身的配置文件application.yml

server:
  port: 8005
spring:
  application:
    name: config-server
  profiles:
    active: native #使用本地文件
  cloud:
    config:
      server:
        native:
          search-locations: classpath:/repo #本地配置仓库地址
#        git:
#          uri: https://gitee.com/xxxx/xxxxx.git
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8001/eureka/

这里我们以使用本地配置仓库地址为例,spring.profiles.active设置为native,配置仓库路径为repo文件夹,所以我们在resources文件下创建repo文件夹,并创建新的一个configclient-dev.yml的文件,内容如下:

server:
  port: 8007

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8001/eureka/
feign:
  hystrix:
    enabled: true
logging:
  pattern:
    console: '%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n'

3、新建启动类

/**
 * @Author:公众号:程序员965
 * @create 2022-07-05
 **/
@EnableConfigServer //开启配置服务
@EnableEurekaClient
@SpringBootApplication
public class ConfitServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfitServerApplication.class, args);
    }

}

注意增加@EnableConfigServer注解,表示这是个配置中心服务端。

4、创建配置中心客户端

服务端开发完成后,我们再新建一个客户端config-client项目,引入如下依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

与服务端不同的是,客户端的配置文件我们创建bootstrap.yml文件

spring:
  cloud:
    config:
      name: configclient
      profile: dev
      label: master
      discovery:
        enabled: true
        service‐id: config-server

eureka:
  client:
    service‐url:
      defaultZone: http://localhost:8001/eureka/

注意spring.cloud.config.name与服务端中的文件名称对应,spring.cloud.config.profile与文件名-后面的环境代码对应,配置文件的命名规则是 {application}/{profile}[/{label}] 。

当 Config Client 去访问 Config Server 时,spring.cloud.config.name 、spring.cloud.config.profile 以及 、spring.cloud.config.label 的值分别对应上面三个占位符,如果配置了spring.cloud.config.name,那么就取spring.cloud.config.name,如果没有配置就取 spring.application.name,通过灵活使用 {application} 、{profile} 、{label} 三个占位符,就可以来动态地控制 client 从 server 所访问的仓库!

然后编写客户端启动类:

/**
 * @Author:公众号:程序员965
 * @create 2022-07-05
 **/
@EnableDiscoveryClient
@EnableFeignClients
@EnableEurekaClient
@SpringBootApplication
public class ConfigClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigClientApplication.class, args);
    }
}

5、验证

我们分别启动registry项目以及config-server,config-client两个服务,这时,就会发现,config-client服务拉取了config-server中对应的配置文件。

总结

这篇文章我们介绍了一下 Spring Cloud Config 的一个基本使用,包括 Spring Cloud Config Server 和 Spring Cloud Config Client 的项目搭建。通过环境的配置隔离,避免了敏感配置信息的泄露。

有人可能就说了,我本地把拉取dev的配置改成拉取prod不一样也能拿到其他环境的信息吗?下一篇文章我们介绍如何通过 Config Server 的安全管理、配置文件的加密等机制真正做到这一点,一起期待吧!

Nacos配置中心实战:Spring Boot微服务动态配置管理与避坑指南 在微服务架构中,配置管理是核心挑战之一。传统配置文件分散、环境隔离困难、变更需重启等问题,催生了配置中心这一基础设施。其核心原理是将配置外部化、中心化存储,实现配置与代码分离。技术价值在于提供集中管理、环境隔离、动态刷新和版本控制能力,显著提升运维效率和系统可靠性。应用场景广泛覆盖微服务配置管理、多环境部署、敏感信息加密等。本文聚焦阿里巴巴开源的Nacos,深入解析其配置中心能力,涵盖核心概念如命名空间、配置集、配置分组,并手把手演示Spring Boot集成、动态刷新实现及生产环境最佳实践,帮助开发者彻底 阅读详情

相关推荐

实战指南:基于华为Ascend NPU的大模型W8A8量化调优与精度提升

本文提供了一份基于华为Ascend NPU进行大模型W8A8量化的实战调优指南。详细介绍了从环境搭建、使用msmodelslim框架进行基础量化,到通过离群值抑制、校准集优化和量化回退等关键技术提升精度的全流程。旨在帮助开发者在华为NPU硬件上实现模型推理的显著加速,同时有效控制精度损失。

weixin_29227425的博客 271

web敏感信息泄漏(36)

信息泄漏是指在正常情况下不能被普通用户访问的敏感信息没有被应用程序所保护,能够直接访问。就web来说这种类型的问题往往会带来巨大的危害,攻击者不仅可以轻松收集用户手机号,姓名等隐私信息,更可以借此攻入企业后台甚至是getshell。通过该实验了解常见的web敏感信息泄漏漏洞原理,掌握常见的web信息泄漏漏洞的利用和漏洞防护。

yyj1781572的博客 2212

cocos creator接入微信登陆sdk ios篇

cocos creator接入微信登陆sdk ios篇 背景已经在Android篇里面交代过了,有兴趣的朋友可以再看看Android篇 步骤 去微信开放平台下载ios平台所需要的sdk 在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id 在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin 将SDK文件中...

凤小鹿的博客 6362

如何加密保护配置文件中的敏感内容(Spring Cloud微服务)

日常开发中接触到的敏感数据包括但不限于数据库和其他中间件及其他系统的账号密码,日志中的个人数据,比如手机号、身份证号和住址等等信息…这里我们只讨论在代码层面如何加密保护敏感数据,主要是配置文件中的敏感数据处理和推送到git仓库平台如何隐藏敏感数据。对对敏感数据的加密保护方法多种多样,不同层面上有不同的方法。对于数据库密码这类信息,常用的连接池比如带有加密工具,但是比较局限,如果是SpringCloud很多服务的项目,可以用配置中心,统一管理各个服务的配置;如果是想加密整个配置文件,可以使用。...

u012809062的博客 1784

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)

本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py和Pandas库,详细演示了如何高效读取HDF5格式文件、理解数据结构、提取关键特征(如传感器数据与剩余使用寿命RUL),并整合为可用于预测性维护分析的DataFrame,帮助研究者和工程师快速上手这一重要的工业时序数据集。

weixin_29083373的博客 278

用 ABAP EML 驾驭 RAP 业务对象:从事务缓冲区到落库提交的一条龙实践

摘要:ABAP EML(Entity Manipulation Language)是SAP RAP框架的核心语言能力,为ABAP开发者提供强类型、批处理友好的方式操作RAP业务对象。EML通过事务缓冲区管理数据变更,支持读取(READ ENTITIES)、修改(MODIFY ENTITIES)及事务控制(COMMIT/ROLLBACK ENTITIES)。其特点包括:基于BDEF派生类型确保类型安全,%control和%cid等特殊字段实现精细控制,统一的消息模型便于错误处理。相比传统ABAP数据访问方式,

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 951

前端安全之常见漏洞及防御

随着项目复杂度的提升以及用户体量的增大,前端安全变得越来越重要。平时系统运行正常,一旦出现安全问题,轻者部门扣分,严重的可能对公司造成严重损失。了解一些常见漏洞,平时coding时注意,防患于未然。

kangzai的博客 6572

【Altium designer】如何添加过孔阵列

按下图1指示,执行【Tool】菜单栏下【Via Stitching/Shielding】选项卡中的【Add Stitching to Net...】选项 图1 “添加过孔阵列”选项 点击【Add Stitching to Net...】选项后,会跳出一个窗口,让我们设置过孔阵列的参数信息,如下图2所示。 图2 过孔阵列参数设置 过孔阵列区域:勾选该选项框,即可绘制多边形区域; 过孔内径与焊盘直径:比如内径 【Hole Size】设为12mil,焊盘直径【Diameter】设为24mil; .

夜半少年的博客 2万+

前端配置文件

前端也是可以有配置文件的。 怎么有配置文件呢? 最简单的,就是将配置信息写在js文件里,数据格式可以定义成json,直接读取就行了。 还有一种方法,就是 将配置信息写在.json文件里,然后用jquery来读取。 config.json文件 { "map": { "apipath": "//192.168.0.211/pubzy/arcgis_js_api/4.10/", "b...

左直拳的马桶_日用桶 3948

FFMPEG音视频开发: Linux下采集音频(alsa-lib库)、视频(V4L2框架)数据编码并实时推流到RTMP流媒体服务器,达到直播功能(推流)

一、环境介绍 操作系统: VM虚拟机运行的ubuntu18.04 FFMPEG版本: 4.4.2 摄像头: 罗技USB摄像头、电脑自带摄像头 声卡:电脑自带声卡 二、FFMPEG、X264的安装 参考这里:FFMPEG开发: Linux下采集摄像头数据录制成MP4视频保存到本: 地https://blog.youkuaiyun.com/xiaolong1126626497/article/d...

2990

NXP(恩智浦)—TJA1043TK CAN收发器芯片详解

本文章主要讲解NXP(恩智浦)—TJA1043TK CAN收发器的相关知识。

零零刷的博客 2201

微服务实战 集中配置组件Config规避敏感信息泄露_config 敏感信息

server:port: 8005spring:profiles:active: native #使用本地文件cloud:config:server:native:search-locations: classpath:/repo #本地配置仓库地址。

2401_84615524的博客 738

PCB仿真软件:Altium Designer_(18).PCB设计中的热管理

在PCB设计中,热管理是一个至关重要的环节。随着电子设备的集成度越来越高,功耗和发热量也随之增加,不合理的热设计可能导致电路板过热,从而影响电路的性能和可靠性。热管理不仅能够提高电路板的使用寿命,还能确保电路在各种环境条件下的稳定工作。本节将详细介绍如何在Altium Designer中进行有效的热管理,包括热分析、热设计和热仿真等关键步骤。

kkchenjj的博客 1985

微服务实战 集中配置组件Config规避敏感信息泄露_config 敏感信息(2)

这篇文章我们介绍了一下 Spring Cloud Config 的一个基本使用,包括 Spring Cloud Config Server 和 Spring Cloud Config Client 的项目搭建。通过环境的配置隔离,避免了敏感配置信息的泄露。有人可能就说了,我本地把拉取dev的配置改成拉取prod不一样也能拿到其他环境的信息吗?下一篇文章我们介绍如何通过 Config Server 的安全管理、配置文件的加密等机制真正做到这一点,一起期待吧!

2401_84592111的博客 940

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

微服务实战 集中配置组件Config规避敏感信息泄露_config 敏感信息(1)

EnableConfigServer //开启配置服务。* @Author:公众号:程序员965。* @Author:公众号:程序员965。

2401_84615524的博客 693

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

微服务实战|集中配置中心Config对称加密实战

SpringCloud集中配置中心Config实现敏感信息的安全管理、配置文件的加密解密等机制。对称加密实战

记录、分享技术总结,避坑经验等 1690

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

微服务实战|集中配置中心Config非对称加密与安全管理

上一篇文章中,我们介绍了使用集中配置中心组件Config实现了对称加密算法实现了配置信息的加密和解密,本文将介绍使用非对称加密算法实现同样的功能以及配置中心的安全管理。

记录、分享技术总结,避坑经验等 996

Spring Boot配置安全:从环境变量到配置中心的敏感信息保护实战

在现代应用开发中,配置管理是连接代码与运行环境的关键环节,其核心在于将数据库密码、API密钥等敏感信息与业务逻辑分离。Spring Boot通过其强大的外部化配置机制,支持从环境变量、配置文件到专业配置中心的多层级方案,实现了配置与代码的解耦。这一设计不仅提升了应用的可移植性和环境适配能力,更重要的是为敏感信息的安全管理提供了基础架构。从安全工程角度看,配置信息泄露是常见的高危风险点,直接威胁数据隐私与系统安全。因此,在微服务与云原生场景下,采用外部化配置中心(如Spring Cloud Config、Ha

weixin_30338497的博客 375

Apollo配置中心实战:微服务配置管理与Spring集成指南

配置管理是现代软件工程中的基础概念,它通过集中化管理应用程序的运行参数,实现了环境隔离、动态更新和版本控制等核心功能。其原理在于将配置信息从代码中分离,通过配置中心进行统一存储和分发。这种技术价值体现在提升应用的可维护性、安全性和部署效率上,特别适用于微服务架构和云原生场景。在实际工程实践中,开发者常面临配置不生效、版本兼容等挑战,需要掌握正确的工具使用方法。以Apollo配置中心为例,结合Spring框架的集成方案,能够有效解决配置动态刷新、权限管理等实际问题。通过合理的环境准备、客户端配置和异常处理机制

weixin_34130389的博客 324
上一篇: 微服务实战|微服务网关Gateway入门与实战
下一篇: BI 系统中为什么会有很多冗余的快照表?
_时光煮雨
博客等级 码龄15年 3707粉丝 34原创
评论 40
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_时光煮雨

你的鼓励是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值