SpringBoot应用监控Actuator安全隐患及解决方案 我们来以应用启动事件:ApplicationStartingEvent为例来进行说明: 以启动类的SpringApplication.run方法为入口,跟进SpringApplication的两个同名方法后,我们会看到主要的run方法,方法比较长,在这里只贴出与监听器密切相关的关键的部分: SpringApplicationRunListeners listeners = get...
Spring Boot 包含许多内置接口,你还可以添加自定义的接口。例如,health 接口提供基本的应用程序健康信息。有关Actuator的更多介绍可以查看官方文档,本篇文章主要讲解关于在生产环境中对Actuator的使用或控制不当,可能会引发安全隐患。为了避免这些问题,我们需要谨慎配置和使用Actuator。 2. 安全漏洞 当在项目中启用Actuator...
还有一个问题就是如果使用的Spring Boot版本大于2.2.4,则必须使用下面的属性手动启用POST API调用 management.endpoint.env.post.enabled=true 否则不能通过POST访问env端点。 利用方法 首先访问http://127.0.0.1:8080/actuator/env来获取我们想要明文字段的key 2. 在自己控制的外网服务器上监听80端口nc-lvk80 3. ...
可以发现,对于内置的敏感配置信息 spring.datasource.password,Spring Boot Actuator 是进行了脱敏的,但是对于自定义的一些敏感配置,如 liuhuan.ak 和 liuhuan.sk 却被暴露出来了,在生产服务我们的机器都部署内网,并且一般都是通过反向代理对外暴露的服务,这类 endpoint 是不会被外部用户访问到的。但还是会有些情况...
https://github.com/liuhongdi/actuator 1. 2, 项目功能说明: 演示了actuator+spring security的安全配置 3,项目结构;如图: 三,配置文件说明 1,pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> ...
根据漏洞链接发现网络地址是一个springclode的网关工程,而真正暴露的是springboot应用监控Actuator的env,于是找了几个有价值的参考网站,对于springclode工程解决如下: 解决办法:在nacos的配置中增加对我暴露端口的限制,如“env”、"health”,然后重启gate_way网关,问题解决 ...
Actuator 默认提供了以下接口,具体如下表所示: 安全措施 如果上述请求接口不做任何安全限制,安全隐患显而易见。实际上Spring Boot也提供了安全限制功能。比如要禁用/env接口,则可设置如下: endpoint: env: enabled:false 另外也可以引入spring-boot-starter-securit...
了解Spring Boot Actuator 的安全风险 从上文的介绍可知,有一些 Spring Boot Actuator 提供的 endpoint 是会将应用重要的信息暴露出去的,以 env 为例来感受下一个典型的 application.yaml 的示例。 复制 server:port: 8080spring:datasource:url: jdbc:mysql://testDbHost:3306/kiritousername: kiritopassword: 1234...
4. 重启Spring Boot应用并验证配置 完成上述配置后,重启你的Spring Boot应用。你可以通过访问Actuator端点(例如http://localhost:8080/actuator/health)来验证配置是否生效。如果配置正确,你应该能够无需认证即可访问这些端点。 请注意,禁用Actuator端点的安全性可能会带来安全风险,因为它允许未经授权的访问。在生产环境中...