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日 下午03:51