工程开发
supabase-extract-anon-key avatar

supabase-extract-anon-key

从客户端代码中提取 Supabase 匿名 API 密钥,以利于进行 RLS 安全性测试与审计。

简介

supabase-extract-anon-key 是一个关键的安全审计工具,旨在从应用程序的客户端源代码中识别并提取匿名 (公开) API 密钥。通过分析 React、Next.js 和 Vite 等前端框架,该工具能协助安全从业人员与开发者验证是否仅暴露了预期的匿名密钥,并确保项目的行级安全性 (RLS) 策略配置正确。由于匿名密钥在客户端应用中是预期会出现的,其存在本身并不直接构成漏洞,但其暴露模式是进行后续测试(如 API 审计、存储桶枚举和 IDOR 漏洞评估)的重要基准。

  • 自动扫描常见的提取模式,包括直接赋值、客户端初始化代码片段,以及 NEXT_PUBLIC_SUPABASE_ANON_KEY 或 VITE_SUPABASE_ANON_KEY 等环境变量。

  • 对提取出的 JWT 进行严格验证,确认项目引用 (ref)、角色 (anon) 以及密钥的过期状态。

  • 实施强制性的渐进式文件更新,将发现结果立即写入 .sb-pentest-context.json 与 .sb-pentest-audit.log,即便处理程序中断,也能保留完整的审计轨迹。

  • 针对潜在安全风险提供实时反馈,例如意外暴露 service_role 密钥,这将构成关键的 P0 安全失败。

  • 与其他 Supabase 渗透测试工具无缝集成,作为后续 RLS 策略与 RPC 函数测试的必要前置步骤。

  • 在执行前请确保目标应用程序可访问,以便代理能够检查静态文件或网络流量。

  • 此工具仅供内部授权的自我评估使用;在对生产环境进行测试前,务必确认已取得测试授权。

  • 若提取的密钥验证失败,请检查是否存在混淆代码或运行时动态获取密钥的情况,这可能需要额外的调试步骤。

  • 使用生成的 .sb-pentest-context.json 文件将凭据传递给安全审计流程中的后续步骤。

  • 采用只读操作,确保审计过程不会修改或删除目标 Supabase 项目内的实际数据。

仓库统计

Star 数
37
Fork 数
1
Open Issue 数
0
主要语言
未提供
默认分支
main
同步状态
空闲
最近同步时间
2026年5月3日 15:51
在 GitHub 查看