用途:该技能用于安全审计中检测客户端代码是否意外暴露 PostgreSQL 数据库连接字符串。暴露连接串意味着可绕过 API 直接连接数据库、绕过 RLS 读写全部数据、查看修改表结构并访问 auth.users,属 P0 严重问题。
主要能力:识别完整连接串(如 postgresql://postgres:[password]@db.[project-ref].supabase.co:5432/postgres)、Supavisor 连接池串、环境变量泄漏(DATABASE_URL、POSTGRES_URL、SUPABASE_DB_URL)、密码与主机分离的部分暴露,以及 Prisma 等 ORM 配置中的数据库地址。
使用方式:在目标应用可访问且已完成 Supabase 检测后运行,可执行基础检查或深度扫描,例如“Check for database connection strings on https://myapp.example.com”或“Deep scan for DB credentials on https://myapp.example.com”。执行中必须渐进写入 .sb-pentest-context.json 与 .sb-pentest-audit.log,并在 .sb-pentest-evidence/02-extraction/db-string-exposure/ 下保存证据文件。
适用场景:每次安全审计、上线前代码审查、怀疑存在 Supabase 数据库直连时。
限制与修复:发现后应立即在 Supabase 控制台重置数据库密码、从客户端代码移除连接串、确认未使用 NEXT_PUBLIC_* 或 VITE_* 前缀暴露,并审计日志。客户端应仅使用 Supabase 客户端库或 Edge Function,直连数据库仅限服务端。具体命令与完整参数资料未提供。