db-query

🗄️ 自动隧道数据库查询工具

基于 Python 的自动化数据库查询工具,支持 SSH 隧道穿透,适合开发测试环境快速查询,但存在命令注入和 SSH 安全降级风险。

收藏
10.6k
安装
2.5k
版本
v1.0.1
CLS 安全性认证2026-07-01
点击查看完整报告 >

使用说明

核心用法

db-query 是一款面向开发者的数据库查询工具,通过集中式 JSON 配置文件管理多数据库连接,并内置自动 SSH 隧道生命周期管理。用户只需在 ~/.config/clawdbot/db-config.json 中配置数据库连接信息(含可选的 SSH 隧道参数),即可通过命令行快速执行 SQL 查询。工具支持按名称模糊匹配数据库、自动建立/关闭 SSH 隧道、自定义配置文件路径等功能,简化了需要跳板机访问的内网数据库查询流程。

显著优点

1. 零配置即查即用:通过单一配置文件集中管理多数据库,避免重复输入连接参数
2. 自动隧道管理:SSH 隧道的建立和关闭完全自动化,无需手动维护长连接

3. 多数据库支持:可同时配置生产、测试、开发等多个环境,通过名称快速切换

4. 轻量无依赖:仅依赖系统自带的 mysql-client 和 ssh,无需复杂的数据库驱动安装

潜在缺点与局限性

1. 安全设计缺陷:SSH 强制禁用主机密钥检查(StrictHostKeyChecking=no),极易遭受中间人攻击
2. 密码明文暴露:数据库密码以明文存储于 JSON 文件,SSH 密码通过 sshpass -p 传递,可能在进程列表中泄露

3. 命令注入风险:SQL 查询直接拼接至 mysql 命令行,未做输入过滤,存在注入隐患

4. 无权限管控:缺乏 SQL 语句类型限制,无法阻止 DROP/DELETE 等高危操作

5. 单点故障:配置文件损坏或权限错误将导致全部数据库无法访问

适合的目标群体

  • 本地开发环境中需要频繁查询多个数据库的后端开发者
  • 拥有跳板机访问需求但不想手动维护 SSH 隧道的运维人员
  • 学习 SQL 或数据库管理的初学者(非生产环境)
  • 需要快速验证数据而不想打开重型数据库客户端的场景

使用风险

  • 数据安全风险:明文密码存储和传输可能导致凭证泄露
  • 网络中间人攻击:SSH 安全选项降级使连接可被劫持
  • 误操作风险:无 SQL 限制可能导致生产数据被意外删除或修改
  • 配置泄露风险:错误信息可能暴露配置文件结构,辅助攻击者构造 payload
  • 端口冲突风险:本地转发端口配置不当可能导致连接至错误服务或失败

安全解读

核心用法

db-query 是一款面向开发者和运维人员的数据库查询工具,支持通过配置文件管理多数据库连接,并自动处理SSH隧道的建立与关闭。用户只需在 ~/.config/clawdbot/db-config.json 中配置数据库信息(含可选的SSH隧道参数),即可通过描述性名称快速执行SQL查询,无需手动维护隧道连接。

显著优点

  • 零依赖设计:纯Python标准库实现,无第三方包,彻底规避供应链攻击风险
  • 自动化隧道管理:SSH隧道随查询自动启停,避免端口占用和连接泄漏
  • 配置驱动:JSON配置文件支持多数据库、大小写不敏感的部分匹配检索
  • 动态分析表现优异:运行时无异常行为,输入验证机制适当

潜在缺点与局限性

  • SSH安全配置缺陷:强制禁用 StrictHostKeyCheckingUserKnownHostsFile,使连接易受中间人攻击
  • 凭证明文暴露:配置文件中存储明文密码,且使用 sshpass 将SSH密码暴露在进程命令行
  • 命令注入风险:通过 subprocess 执行 mysqlssh 命令,虽当前实现风险可控,但架构存在隐患
  • 仅支持MySQL:缺乏PostgreSQL、MongoDB等其他数据库的适配能力

适合人群

  • 需要频繁访问内网/隔离环境数据库的开发工程师
  • 具备基础SSH和数据库知识的DevOps运维人员
  • 能接受手动安全配置、重视工具轻量化的技术团队

常规风险

| 风险类型 | 等级 | 说明 |
|---------|------|------|
| 中间人攻击 | 中高 | SSH主机密钥验证被完全禁用 |
| 凭证泄露 | 中 | 密码明文存储于配置文件及进程列表 |
| SQL注入 | 低 | 依赖mysql客户端处理,无额外过滤 |
| 供应链攻击 | 极低 | 零第三方依赖,纯标准库实现 |

db-query 内容

scripts文件夹
手动下载zip · 5.3 kB
config.example.jsonapplication/json
请选择文件