H2 Database Console未授权访问漏洞封堵

背景

H2 Database Console未授权访问,默认情况下自动创建不存在的数据库,从而导致未授权访问。各种未授权访问的教程,但是它怎么封堵呢?

-ifExists

很简单,启动参数添加 -ifExists ,它的含义:

-ifExists\] Only existing databases may be opened (all servers)

应用出厂时先创建好数据库文件后,修改启动脚本,添加该参数:

bash 复制代码
dir=$(dirname "$0")
nohup java -cp "$dir/h2-2.x.xx.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Server -tcpAllowOthers -webAllowOthers -tcpPort -ifExists "$@" &

这样启动 h2 后首次访问时会因为 test 数据库不存在而无法连接:

只有输入正确的出厂数据库路径、帐号和密码,才能连接到操作页面。

其他尝试

还有一个 -webAdminPassord 参数,但是加上后一直报不支持的操作异常,最后只好作罢。

相关推荐
凭X而动4 分钟前
postgresql18.1部署
数据库·postgresql
万邦科技Lafite4 分钟前
京东商品详情 API 接口全面讲解
java·数据库·redis·api·电商开放平台
无风听海7 分钟前
MongoDB GridFS 一些处理细节解析
数据库·mongodb
青云计划10 分钟前
Mysql
数据库·mysql
SelectDB20 分钟前
Agent 应用范式下,企业数据基础设施如何演进?
大数据·数据库·数据分析
杜子不疼.29 分钟前
【C++ AI 大模型接入 SDK】 - 环境搭建
开发语言·数据库·c++
qq_2837200531 分钟前
Milvus 向量数据库全链路优化实战教程
数据库·milvus
m0_7020365331 分钟前
CSS如何兼容新旧方案结合响应式容器查询
jvm·数据库·python
ClouGence37 分钟前
我们做了个疯狂的决定,把 CloudDM 全部开源了
数据库·后端·mysql
努力努力再努力wz1 小时前
【Qt入门系列】深入理解信号与槽:从事件响应到自定义信号机制
c语言·开发语言·数据结构·数据库·c++·qt·mysql