You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot应用生成可公开访问env.json的原因及访问限制方案

生成机制

你看到的env.json是Spring Boot官方监控组件Actuator的env端点返回的响应内容。只要项目中引入了spring-boot-starter-actuator依赖,默认就会自动注册一系列用于应用监控、管理的内置端点,env是其中用来返回应用全部环境配置的端点,你给出的返回结构就是该端点的标准返回格式,包含了所有加载到Spring运行环境中的配置源内容,包括application.properties定义的配置、系统环境变量、JVM属性、服务端口等敏感数据。如果开发者没有对端点的暴露做限制,该接口就会默认对外公开可访问,产生敏感信息泄露的安全风险。

限制公开访问的方案
  • 关闭不必要的敏感端点
    在application.properties中配置关闭默认全部端点,只单独开启业务需要的端点,示例配置如下:
    # 关闭所有端点默认开启的规则
    management.endpoints.enabled-by-default=false
    # 仅开启健康检查端点
    management.endpoint.health.enabled=true
    
    如业务确实需要使用env端点,再单独配置management.endpoint.env.enabled=true开启,避免不必要的端点暴露。
  • 从web访问列表中排除敏感端点
    就算开启了部分敏感端点供内部使用,也可以配置不对外通过web路径暴露,示例配置:
    # 从web暴露列表中排除env、beans等高危敏感端点
    management.endpoints.web.exposure.exclude=env,beans,configprops
    
  • 给端点添加访问权限控制
    整合Spring Security等权限框架,给所有Actuator端点配置访问权限,仅允许管理员角色的用户访问敏感接口,示例配置:
    # 配置Actuator端点仅允许ADMIN角色访问
    management.endpoints.web.access.role=ADMIN
    
  • 敏感值自动脱敏
    若确实需要对外暴露env端点的部分信息,可以配置关闭明文展示敏感配置:
    # 永远不返回配置的明文值
    management.endpoint.env.show-values=NEVER
    
  • 网络层面拦截
    在网关、WAF或防火墙层配置规则,拦截所有对公网开放的Actuator相关路径请求,仅允许内网指定IP段访问这类管理接口。

内容的提问来源于stack exchange,提问作者Wicky Memon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 23:39:03