SuperAPI AI 工具集

supabase-audit-auth-config

安全与审计

查看项目

更新于 10-15 18:09

技能介绍

用途

该技能用于审计 Supabase 项目的身份认证配置,发现安全弱点与错误配置。它面向安全审查场景,可在生产部署前、审计认证相关漏洞时,或作为全面安全审查的一部分使用。

主要能力

技能通过 Supabase Auth(GoTrue)公开端点(https://[project].supabase.co/auth/v1/)进行检测,可识别以下内容:

  • 邮箱认证是否启用、注册是否开放、是否需要邮箱确认、密码最小长度
  • 手机/SMS 认证是否启用及其提供商
  • Magic Link 是否启用及 OTP 过期时间
  • OAuth 提供商(如 Google、GitHub、Discord)是否启用
  • 匿名认证是否启用
  • 速率限制(注册、令牌、恢复)
  • 会话配置(JWT 过期时间、刷新令牌轮换、非活动超时)
  • 安全头(CORS 配置、允许来源、凭证)

检测方法包括尝试注册、检查设置、查看注册响应与错误信息等。

使用方式

技能提供基础认证审计与特定功能检查两种用法。执行时会输出格式化的审计报告,包含认证方法、安全设置、分级发现(P1/P2/Info)与建议操作。

技能强制要求逐步更新跟踪文件:

  • 在检查每个认证方法前,将操作记录到 .sb-pentest-audit.log
  • 每分析完一项配置后,立即更新 .sb-pentest-context.json
  • 每发现一个问题后,立即记录其严重级别

证据收集目录为 .sb-pentest-evidence/05-auth-audit/,需创建 auth-settings.json 记录完整认证配置。同时需将测试命令追加到 curl-commands.sh。

适用场景

  • 生产部署前的认证安全审查
  • 审计认证相关漏洞
  • 全面安全审查的一部分
  • 检查注册是否开放、启用了哪些提供商

限制

  • 需要 Supabase URL 和 anon key,且需先完成检测
  • 部分设置(如安全密码检查、刷新令牌轮换、非活动超时)可能无法从公开 API 确定,报告中会标记为 Unknown
  • 技能本身不修改配置,仅提供发现与修复建议
  • 修复需在 Supabase Dashboard 中手动操作

常见认证漏洞

技能列举了以下常见问题:无邮箱确认(用户可用任意邮箱注册并立即通过认证)、弱密码策略(如最小长度 6 位可接受 123456)、不需要时仍开放注册。

修复示例

  • 启用邮箱确认:Dashboard → Authentication → Email Templates,启用 "Confirm email",自定义确认邮件模板,在应用中处理未确认用户
  • 强化密码要求:Dashboard → Authentication → Settings,设置最小长度 8+,考虑启用密码强度检查
  • 限制 CORS:Dashboard → Authentication → URL Configuration,设置具体 Site URL,仅将自有域名加入 Redirect URLs,移除通配符条目

相关技能

  • supabase-audit-auth-signup — 测试注册流程
  • supabase-audit-auth-users — 测试用户枚举
  • supabase-audit-rls — 认证用户需要 RLS 保护