前言

安全组针对系统漏扫发现系统存在Druid未授权访问,会引发泄露系统敏感信息,漏洞链接为ip:端口/druid/index.html,可以清楚的查看数据库的相关连接信息,如下图所示:
在这里插入图片描述

漏洞修复

1、关闭Druid监控页面

在Druid的配置中,有一个控制监控页面是否启用的配置,默认为true,开启监控页面,我们可以设置其为false彻底关闭监控页面,配置如下:

#application.properties配置
spring.datasource.druid.stat-view-servlet.enabled = false

#application.yml配置
spring:
  datasource:
    druid:
      stat-view-servlet:
        enabled: false

再次访问Druid监控页面,无法展示
在这里插入图片描述

2、设置账密登录监控页面

通过暴力关闭监控页面的方式也阻断了对Druid的监控,因此我们可以配置监控页面的访问控制,注册一个Druid访问控制的bean,如下

import com.alibaba.druid.support.http.StatViewServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.HashMap;
import java.util.Map;
/**
 * @version V1.0
 * @ClassName: DruidConfig
 * @Description: Druid 授权访问
 */
@Configuration
public class DruidConfig {
    // 注册后台监控界面
    @Bean
    public ServletRegistrationBean servletRegistrationBean(){
        // 绑定后台监控界面的路径  为localhost/druid
        ServletRegistrationBean bean=new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
        Map<String,String>map=new HashMap<>();
        // 设置后台界面的用户名
        map.put("loginUsername","");
        //设置后台界面密码
        map.put("loginPassword","");
        // 设置那些ip允许访问," " 为所有
        map.put("allow","");
        bean.setInitParameters(map);
        return bean;

    }
}

上面配置的用户名密码等属性可以单独抽到配置文件,以配置项的形式读取,配置完成后,启动项目,访问监控页面,如下
在这里插入图片描述

GitHub 加速计划 / druid / druid
3
3
下载
阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池
最近提交(Master分支:4 个月前 )
9faeba9f - 2 天前
5a1a5f0f - 2 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐