开发者社区> 问答> 正文

建议默认禁止druid-springboot-starter中的stat-view监控页面,防止DB

druid-springboot-starter默认启用内置监控页面,且不开启任何安全措施,如登录页面、访问IP等。

@ConditionalOnProperty(name = "spring.datasource.druid.stat-view-servlet.enabled", havingValue = "true", matchIfMissing = true) public class DruidStatViewServletConfiguration {}

@ConditionalOnProperty(name = "spring.datasource.druid.web-stat-filter.enabled", havingValue = "true", matchIfMissing = true) public class DruidWebStatFilterConfiguration {}

可能产生的后果 开发不注意,导致监控页面在公网露出,监控页面中包含:DB的IP、用户名、库名、表名、字段名及字段值等,进而导致信息泄露。 建议 禁用监控页面 如果禁用监控页面StatFilter注册感觉也是多余的,可以等用户需要配置日志、慢sql的时候,再启用

@Bean
@ConfigurationProperties(FILTER_STAT_PREFIX)
@ConditionalOnProperty(prefix = FILTER_STAT_PREFIX, name = "enabled", matchIfMissing = true)
@ConditionalOnMissingBean
public StatFilter statFilter() {
    return new StatFilter();
}

原提问者GitHub用户ghost

展开
收起
山海行 2023-07-05 19:47:51 487 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    你可以通过在Spring Boot的application.properties或application.yml配置文件中设置以下属性来禁用Druid数据源的stat-view监视页面:

    如果你使用的是application.properties,你可以添加以下行:

    properties
    Copy
    spring.datasource.druid.stat-view-servlet.enabled=false
    如果你使用的是application.yml,你可以添加以下配置:

    yaml
    Copy
    spring:
    datasource:
    druid:
    stat-view-servlet:
    enabled: false
    这些配置禁用了Druid的StatViewServlet,这个servlet用于显示Druid的统计信息。禁用后,你将无法通过Web界面访问Druid的数据库连接和SQL统计信息,从而可以防止数据库信息的泄露。

    2023-07-30 15:48:44
    赞同 展开评论 打赏
  • 问题已修复,请用新版本 https://github.com/alibaba/druid/releases/tag/1.1.14

    原回答者GitHub用户wenshao

    2023-07-06 11:06:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多