安全性
憑證儲存在哪裡
Mac 上
密碼、金鑰的通關密語、AI 供應商的 API 金鑰和授權金鑰都儲存在 macOS 鑰匙圈中。磁碟上的連線清單不含密碼,SSH 金鑰仍是磁碟上的檔案。
iPhone 與 iPad 上
密碼和貼上的 SSH 金鑰儲存在鑰匙圈中。
iCloud Sync
iCloud Sync 預設關閉。記錄存入您自己 iCloud 帳戶中的私有資料庫,TablePro 無法讀取,且不含密碼。只有同時開啟 Mac 上的密碼(Passwords)或 iPhone 與 iPad 上的同步密碼(Sync Passwords),密碼才會同步,並透過 iCloud 鑰匙圈傳輸。
TablePro 會收到什麼
您執行的查詢、查詢結果和您的密碼不會傳送給 TablePro。唯一的例外是您選擇發佈到的 Team Library:它會收到連線設定和已儲存的查詢,但從不包含密碼。
值得了解的限制
- 在 Mac 上,密碼同步也會同步 AI 供應商的 API 金鑰和授權金鑰。
- 1Password 或 Shell 指令等密碼來源會在每次連線時於您的 Mac 上執行一個程式。
哪些內容會離開您的裝置
傳到您的伺服器與供應商
查詢和結果在 App 與您自己的資料庫伺服器之間傳輸,從不經過 TablePro。AI 請求直接傳到您加入的供應商。
傳到 TablePro
未啟用授權時,Mac App 向 TablePro 發出的唯一請求是每日使用報告,預設開啟,可在設定中關閉。iPhone 與 iPad 除非開啟 Share Usage Data,否則不向 TablePro 傳送資訊。報告從不包含主機名稱、使用者名稱、密碼、查詢或列資料,兩款 App 也都不含當機回報工具或第三方分析程式庫。
值得了解的限制
- Mac App 傳送第一份使用報告前不會詢問,我們的伺服器會保存每份報告和每次授權驗證的 IP 位址。
App 如何送到您手中
簽署與公證
Mac 版本使用 Developer ID 簽署、啟用 Hardened Runtime,並經 Apple 公證。磁碟映像檔發佈在 GitHub Releases,每個都附有 SHA-256 總和檢查碼。Homebrew cask 下載同一個映像檔並核對其 SHA-256。
更新
Mac App 透過 Sparkle 更新,並在安裝每個更新前以 App 內建的公開金鑰驗證其 EdDSA 簽章。這項驗證無法關閉。自動更新可以關閉,可在設定中或透過設定描述檔操作。
驅動程式外掛
未隨 Mac App 提供的驅動程式從 GitHub 下載。每個驅動程式都必須與外掛登錄中的 SHA-256 一致,並帶有有效的程式碼簽章:TablePro 自己的簽章,或您明確同意信任的其他開發者的 Developer ID。
iPhone 與 iPad
iPhone 與 iPad App 在 App Store 上提供,更新也由 App Store 推送。驅動程式已內建,App 不下載任何外掛。
值得了解的限制
- Mac App 不使用 macOS App Sandbox,而是以您的使用者帳戶對檔案與網路的存取權限執行。
- 驅動程式外掛作為 TablePro 的一部分執行,可以讀取您開啟的每個連線的憑證。
什麼能防止資料庫誤操作
Safe Mode 等級
每個連線都有 Safe Mode 等級:Silent、Alert、Alert (Full)、Safe Mode、Safe Mode (Full) 與 Read-Only。Alert 在寫入前詢問,Safe Mode 等級還要求 Touch ID 或 Mac 密碼,Full 等級在讀取前也會詢問,Read-Only 拒絕寫入。組織可透過設定描述檔為其 Mac 強制設定最低等級。iPhone 與 iPad 上的等級為 Off、Confirm Writes 與 Read-Only。
破壞性陳述式
在 Mac 上的任何等級,DROP、TRUNCATE 和無 WHERE 的 DELETE 都會停下並先詢問,同時顯示完整陳述式。
值得了解的限制
- Safe Mode 在 TablePro 內部執行,用來防止誤操作。它不是沙盒,也不是權限系統:必須嚴格執行的規則,請使用資料庫本身的權限。
- 新連線預設為 Silent,陳述式依原樣執行,無 WHERE 的 UPDATE 也一樣。
- 在聊天的 Edit 和 Agent 模式下,AI 助理可以執行陳述式,在 Silent 等級下它的寫入無須詢問。佔用整個視窗的 Agent mode 會讓連線保持 Alert 或更嚴格的等級,但這只是提醒,不是鎖定。
MCP 伺服器
僅限本機
MCP 伺服器只在 Mac App 中提供,在您手動開啟或已設定的用戶端啟動它之前保持關閉。它接聽 127.0.0.1,沒有遠端模式,用戶端也從不會看到密碼。
用戶端如何獲得核准
預設情況下,每個請求都需要帶有範圍(Read Only、Read & Write 或 Full Access)的權杖;用戶端首次存取某個連線時,Mac 上的對話框會詢問您。
用戶端可以做什麼
每個連線決定外部用戶端可以做什麼:Blocked、Read Only(預設)或 Read & Write。寫入仍需經過該連線的 Safe Mode 等級,DROP 和 TRUNCATE 每次都需要 Full Access 權杖和您的核准,每次呼叫都會記錄在您的 Mac 上。
值得了解的限制
- 127.0.0.1 表示伺服器接聽的位置,而不是誰能存取它。您 Mac 上的任何程式都能連線,在 claude.ai 或 app.cursor.com 上開啟的頁面也可以。它們都仍需要權杖,因此請保持要求驗證。
- 用戶端讀取的內容會依其 AI 服務的條款傳送給該服務。
開放原始碼
程式碼公開
兩款 App 均採用 AGPLv3 開放原始碼,包括付費功能的程式碼。本頁描述的內容都能在儲存庫中查閱,簽署與公證每個版本的指令碼也在其中,您還可以自行建置 Mac App。
回報漏洞
如何回報
請寄送郵件至 [email protected],或在 GitHub 上私下回報,使用英語或越南語皆可。請勿為漏洞建立公開的 issue、討論或 pull request。
需要提供的資訊
受影響的對象及其版本:Mac App、iPhone 與 iPad App、外掛或本網站。另請提供 macOS 或 iOS 版本、涉及驅動程式時的資料庫類型、重現步驟或概念驗證,以及攻擊者能取得什麼。
哪些版本會獲得修正
只有每個 App 和外掛的最新版本會獲得安全性修正,因此回報前請確認問題在最新版本中仍然存在。