Security

安全

DBVeil 的设计目标是让云端应用安全连接私有数据库,而不把数据库直接暴露到公网。 下面说明我们的信任边界、凭证管理和连接校验方式。

架构与信任边界

  • 数据库不开放公网端口。数据库始终运行在用户自己的服务器或内网, 公网只暴露 DBVeil Relay 分配的转发端口。
  • Agent 主动出站。Agent 从用户网络内部向 Relay 建立出站连接, 无需在防火墙上开放入站端口,也不需要 VPN。
  • Relay 只转发授权流量。FRPS 通过插件回调控制平面, 校验 Agent 身份、端口归属、隧道状态和连接权限后才放行连接。

令牌与凭证

  • Agent Token。用于注册 Agent,默认 24 小时有效、仅展示一次, 用后即应妥善保存或废弃。
  • FRP 临时凭证。Agent 启动 frpc 前向控制平面换取短期凭证, 到期自动刷新,降低长期密钥泄露风险。
  • 账号与会话。登录密码使用 scrypt 加盐哈希存储, 会话基于 HttpOnly Cookie,并设置有效期。
  • 管理后台。访问运营控制台需校验 Admin Token, 服务端使用常量时间比较,会话 Cookie 仅保存令牌摘要而非明文。

连接与端口校验

每一次新连接到达 Relay 时,FRPS 都会回调控制平面校验:发起隧道的 Agent 是否在线、 目标端口是否属于该工作区、隧道是否处于在线状态。被暂停或删除的隧道会立即停止接受新连接, 释放的端口不会被其他工作区直接复用。

数据可见性

DBVeil 是 TCP 层的转发通道,只负责在 Agent 与应用之间传递字节流, 不解析数据库协议负载,也不读取或存储数据库中的业务数据。建议在应用与数据库之间 启用数据库自身的 TLS(如 PostgreSQL sslmode=require)以获得端到端加密。

漏洞披露

如果你发现潜在的安全问题,请发送邮件至 support@dbveil.com, 并附上复现步骤。我们会尽快确认并处理,在修复前请勿公开披露。