database client插件不加密连接凭据,所有配置明文存储于connections.json等文件中,易被窃取或误传;dbcode虽支持ssl/ssh隧道,但凭据仍依赖系统密钥环,未启用时退化为明文缓存;根本缓解需禁用明文配置、改用环境变量或sm4加密settings.json,或弃用插件内置连接管理。

Database Client 插件不加密连接凭据,敏感信息明文落盘
Database Client 插件本身**不提供凭据加密能力**,所有连接配置(User、Password、Host)以明文形式写入 VSCode 的 settings.json 或插件私有 JSON 文件中。2026 年实测发现,其保存的连接配置在 ~/.vscode/extensions/cweijan.vscode-database-client-*/data/connections.json 可直接被读取——这与 VSCode 同步机制的端到端加密无关,属于插件自身设计缺陷。
常见错误现象包括:
- 误将含密码的
connections.json提交至 Git 仓库 - 使用国产化 VSCode 衍生版(如 CodeStudio 2026.1.427)时,该文件可能被遥测模块静默上传至厂商服务器(CVE-2026-XXXX)
- 多用户共用开发机时,其他账户可直接 cat 查看该路径下的明文密码
DBCode 支持 SSH 隧道与自动 SSL,但凭据仍由 VSCode 管理
DBCode 的安全优势在于连接通道层:它原生支持 SSH tunnel 和 SSL/TLS 加密传输,能规避中间人窃听;但它**不接管凭据存储逻辑**,仍依赖 VSCode 的 secretsStorage API 或系统密钥环(如 Linux Secret Service、macOS Keychain)。这意味着:
- 若本地系统未启用密钥环(例如 WSL2 默认无 gnome-keyring),DBCode 会退化为明文缓存密码
- VSCode 同步开启时,
secretsStorage中的凭据**不会同步**——这是 VSCode 的安全设计,但用户容易误以为“已登录即安全”,而忽略本地设备失陷风险 - 云数据库(如 AWS RDS)连接需额外配置 IAM 认证或临时凭证,DBCode 仅透传,不参与签名过程
敏感配置硬编码进 settings.json 的真实风险与修复路径
无论使用 Database Client 还是 DBCode,只要把 "password": "my_pass" 写进 settings.json,就构成高危行为。2026 年多个国产 IDE 漏洞(CVE-2026-XXXX)证实:这类字段会被遥测模块、插件市场 SDK 或 DevContainer 初始化脚本意外捕获并外传。
可行缓解方式只有两种:
- 禁用所有含明文凭据的配置项,改用环境变量注入:
"password": "${env:DB_PASSWORD}",再通过launch.json或 shell wrapper 注入(注意 shell history 泄露) - 对
settings.json单独做国密 SM4 加密:用gmsm库生成密钥,调用sm4.NewCipher(key).NewCBCEncrypter(iv)加密整文件,启动前由自定义脚本解密加载(需确保iv不复用、密钥不硬编码) - 彻底弃用插件内置连接管理,改用
mysql -u root -p --defaults-file=~/my.cnf方式,将凭据隔离进my.cnf并设权限chmod 600
FinCore 加密内核不覆盖数据库插件,医疗/金融场景需额外适配
VSCode 2026 的 fincore.enabled 机制只作用于策略代码文件(.py、.ts)和审计日志,**对数据库插件的连接配置完全无效**。医疗或金融项目若要求病历/交易数据字段级加密,必须在数据库侧启用 TDE(透明数据加密)或应用层 AES-GCM 加密(如用 AES_ENCRYPT() 函数),而非依赖 IDE 插件。
典型误操作是以为启用 FinCore 就等于“整个工作区加密”——实际上它连 connections.json 都不会扫描。真正需要保护的是:
- 数据库中的
patient_name字段(应 AES-256-GCM 加密后存) - 远程连接用的 SSH 私钥(应设密码保护,且禁用
ssh-agent自动加载) - 插件生成的临时 SQL 导出文件(默认无加密,需手动
gpg --cipher-algo AES256 -c export.sql)
最易被忽略的一点:Database Client 的“导出查询结果为 CSV”功能会把解密后的明文数据直写磁盘,且不触发任何加密钩子——这个动作完全游离在所有 IDE 加密机制之外。











