Druid關(guān)閉監(jiān)控頁面關(guān)閉不了的問題及解決
Druid關(guān)閉監(jiān)控頁面關(guān)閉不了
項(xiàng)目里連接數(shù)據(jù)庫使用了阿里開源的druid,結(jié)果被發(fā)現(xiàn)有安全漏洞,可以直接訪問到druid的監(jiān)控界面。
但是奇怪的是,明明在yml文件里配置了關(guān)閉,同時(shí)allow的訪問IP是127.0.0.1,還設(shè)置了用戶名和密碼,但是就是關(guān)不了
配置如下:
datasource:
x-wr:
driverClassName: com.mysql.jdbc.Driver
name: mysql
type: com.alibaba.druid.pool.DruidDataSource
druid:
#基本屬性
url: jdbc:mysql://
username: x_rw
password: 11111
filter:
stat:
enabled: false #默認(rèn)值為true,監(jiān)控sql\慢sql等功能,我們建議修改為false,如果需要打開監(jiān)控頁面或者將慢sql輸出到日志中,則修改為true。
wall:
enabled: false #默認(rèn)值為false,sql防火墻,支持過濾sql,如禁止使用delete *等操作。
slf4j:
enabled: false #指定使用slf4j日志組件,支持選擇將各種操作過程輸出到日志中。
log4j2:
enabled: false #指定使用log4j2日志組件,支持選擇將各種操作過程輸出到日志中。
log4j:
enabled: false #指定使用log4j日志組件,支持選擇將各種操作過程輸出到日志中。
commons-log:
enabled: false #指定使用commons-log日志組件,支持選擇將各種操作過程輸出到日志中。
stat-view-servlet:
enabled: false #默認(rèn)值為true,即打開監(jiān)控頁面,但存在泄漏信息的風(fēng)險(xiǎn),所以修改為false
login-username: hhhh #配置監(jiān)控頁面登錄用戶名,啟用監(jiān)控頁面后才可用,建議業(yè)務(wù)方,重新定義,別使用我們的給定值
login-password: ssdd #配置監(jiān)控頁面登錄密碼,啟用監(jiān)控頁面后才可用,建議業(yè)務(wù)方,重新定義,別使用我們的給定值
allow: 127.0.0.1 #配置允許訪問監(jiān)控頁面的IP地址
web-stat-filter:
enabled: false #默認(rèn)值為true,統(tǒng)計(jì)web關(guān)聯(lián)的監(jiān)控信息如session/url等,建議修改為false
session-stat-enable: false #該功能模塊代碼不完善,特定場景下會(huì)誘發(fā)異常,非特別需求,建議修改為false
#配置初始化大小/最小/最大
initial-size: 1
min-idle: 1
max-active: 20
#獲取連接等待超時(shí)時(shí)間
max-wait: 60000
#間隔多久進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接
time-between-eviction-runs-millis: 60000
#一個(gè)連接在池中最小生存的時(shí)間
min-evictable-idle-time-millis: 300000
validation-query: SELECT 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
#打開PSCache,并指定每個(gè)連接上PSCache的大小。oracle設(shè)為true,mysql設(shè)為false。分庫分表較多推薦設(shè)置為false
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
connection-init-sqls: set names utf8mb4
x-ro:
driverClassName: com.mysql.jdbc.Driver
name: mysql
type: com.alibaba.druid.pool.DruidDataSource
druid:
#基本屬性
url: jdbc:mysql://
username: x_ro
password: 00000
filter:
stat:
enabled: false #默認(rèn)值為true,監(jiān)控sql\慢sql等功能,我們建議修改為false,如果需要打開監(jiān)控頁面或者將慢sql輸出到日志中,則修改為true。
wall:
enabled: false #默認(rèn)值為false,sql防火墻,支持過濾sql,如禁止使用delete *等操作。
slf4j:
enabled: false #指定使用slf4j日志組件,支持選擇將各種操作過程輸出到日志中。
log4j2:
enabled: false #指定使用log4j2日志組件,支持選擇將各種操作過程輸出到日志中。
log4j:
enabled: false #指定使用log4j日志組件,支持選擇將各種操作過程輸出到日志中。
commons-log:
enabled: false #指定使用commons-log日志組件,支持選擇將各種操作過程輸出到日志中。
stat-view-servlet:
enabled: false #默認(rèn)值為true,即打開監(jiān)控頁面,但存在泄漏信息的風(fēng)險(xiǎn),所以修改為false
login-username: hhhh #配置監(jiān)控頁面登錄用戶名,啟用監(jiān)控頁面后才可用,建議業(yè)務(wù)方,重新定義,別使用我們的給定值
login-password: ssdd #配置監(jiān)控頁面登錄密碼,啟用監(jiān)控頁面后才可用,建議業(yè)務(wù)方,重新定義,別使用我們的給定值
allow: 127.0.0.1 #配置允許訪問監(jiān)控頁面的IP地址
web-stat-filter:
enabled: false #默認(rèn)值為true,統(tǒng)計(jì)web關(guān)聯(lián)的監(jiān)控信息如session/url等,建議修改為false
session-stat-enable: false #該功能模塊代碼不完善,特定場景下會(huì)誘發(fā)異常,非特別需求,建議修改為false
#配置初始化大小/最小/最大
initial-size: 1
min-idle: 1
max-active: 20
#獲取連接等待超時(shí)時(shí)間
max-wait: 60000
#間隔多久進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接
time-between-eviction-runs-millis: 60000
#一個(gè)連接在池中最小生存的時(shí)間
min-evictable-idle-time-millis: 300000
validation-query: SELECT 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
#打開PSCache,并指定每個(gè)連接上PSCache的大小。oracle設(shè)為true,mysql設(shè)為false。分庫分表較多推薦設(shè)置為false
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
connection-init-sqls: set names utf8mb4
試了各種方法都不行,于是上網(wǎng)查了一下,發(fā)現(xiàn)確實(shí)是個(gè)bug(可以參考這篇文章bug)
于是解決方法就只能變成替換成hikari,怎么替換可以看我的文章hikari替換druid
關(guān)閉druid監(jiān)控 實(shí)測好用
spring.datasource.druid.filter.config.enabled=false spring.datasource.druid.web-stat-filter.enabled=false spring.datasource.druid.stat-view-servlet.enabled=false
注釋掉 public class DruidConfiguration 類
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java中List數(shù)組用逗號(hào)分隔開轉(zhuǎn)成字符串2種方法
在我們?nèi)粘i_發(fā)中,在前后端交互的時(shí)候會(huì)遇到多個(gè)id或其他字段存放到一個(gè)字段中,這時(shí)我們會(huì)遇到一個(gè)List(集合)---->String(單個(gè)字段),這篇文章主要給大家介紹了關(guān)于java中List數(shù)組用逗號(hào)分隔開轉(zhuǎn)成字符串的2種方法,需要的朋友可以參考下2023-10-10
java中brew安裝rabbitmq以及簡單實(shí)例
RabbitMQ是基于AMQP協(xié)議,由Erlang語言開發(fā)的開源消息隊(duì)列系統(tǒng),廣泛應(yīng)用于分布式系統(tǒng)中,用于應(yīng)用程序間的消息傳遞,它支持多種交換機(jī)類型,如直連交換機(jī)、扇形交換機(jī)和主題交換機(jī)等,能夠滿足不同的消息路由需求2024-10-10
springBoot項(xiàng)目集成quartz開發(fā)定時(shí)任務(wù)案例及注意事項(xiàng)
這篇文章主要介紹了springBoot項(xiàng)目集成quartz開發(fā)定時(shí)任務(wù)案例及注意事項(xiàng),這些功能的主要接口(API)是Scheduler接口。它提供了簡單的操作,例如:將任務(wù)納入日程或者從日程中取消,開始/停止/暫停日程進(jìn)度,需要的朋友可以參考下2022-06-06
數(shù)據(jù)定位在java購物車系統(tǒng)中的應(yīng)用
實(shí)現(xiàn)"加入購物車"功能,數(shù)據(jù)定位至關(guān)重要,它通過用戶ID和商品ID等標(biāo)識(shí)符實(shí)現(xiàn)快速查詢和數(shù)據(jù)一致性,主鍵、外鍵和聯(lián)合索引等數(shù)據(jù)庫技術(shù),以及Redis緩存和并發(fā)控制策略如樂觀鎖或分布式鎖,共同保障了購物車系統(tǒng)的查詢效率和數(shù)據(jù)安全,這些機(jī)制對(duì)高并發(fā)和大數(shù)據(jù)量的場景尤為重要2024-10-10

