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 参数,但是加上后一直报不支持的操作异常,最后只好作罢。

相关推荐
闻哥21 分钟前
Redis事务详解
java·数据库·spring boot·redis·缓存·面试
道亦无名1 小时前
aiPbMgrSendAck
java·网络·数据库
面向对象World4 小时前
正点原子Mini Linux 4.3寸800x480触摸屏gt115x驱动
linux·服务器·数据库
dinga198510264 小时前
mysql之联合索引
数据库·mysql
微风中的麦穗4 小时前
【SQL Server 2019】企业级数据库系统—数据库SQL Server 2019保姆级详细图文下载安装完全指南
大数据·数据库·sqlserver·云计算·个人开发·运维必备·sqlserver2019
zjttsh5 小时前
MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解
android·数据库·mysql
顾北125 小时前
SpringCloud 系列 04:Gateway 断言 / 过滤器 / 限流 一站式落地指南
java·开发语言·数据库
禹凕5 小时前
MYSQL——基础知识(NULL 值处理)
数据库·mysql
码云数智-大飞5 小时前
SQL Server 无法启动?常见原因及详细解决方法指南
数据库
8486981196 小时前
MySQL 只读库踩坑实录:为什么 INSERT/UPDATE 不报错,DELETE 却直接炸了?
数据库·mysql·hibernate