AI 生成的應用程式仍需要任何應用程式都必須具備的後端控制:伺服器端密鑰、授權、租戶隔離、安全寫入、遷移、預算、可觀察性與復原。能生成可運作的 UI 和 API 程式碼,並不能證明這些控制已經存在。
最快的審查方式是第二位使用者測試。建立兩位使用者、兩個租戶及兩筆記錄,再嘗試跨越第一位使用者展示中從未碰到的每一道邊界。
能運作的展示只證明一條路徑
程式開發代理通常會針對它看得到的驗收測試最佳化。如果工作要求「建立一個筆記應用程式」,能新增和列出筆記的表單可能就符合要求。但工作可能從未問過:一位使用者能不能請求另一位使用者的筆記 ID、逾時的新增操作會不會重複執行,或瀏覽器套件是否含有管理金鑰。
這同時是規格與基礎設施問題。審查必須把缺少的限制轉成可執行的要求。
密鑰只能留在伺服器端
搜尋生成的 JavaScript、source map、行動應用程式套件、已提交的環境檔案、日誌及錯誤回應,確認其中沒有供應商或管理憑證。公開用戶端只能取得明確設計為公開使用的憑證,或限於目前使用者與動作的短效權杖。
OWASP API Security Top 10將物件授權失效與身分驗證失效視為兩種不同風險。身分驗證確認呼叫者是誰,授權則決定該呼叫者能不能存取這個物件。
代理安全指南示範如何分開代理的建置憑證與部署後應用程式的身分。
每一條資料路徑都必須隔離租戶
只在一張資料表加入 tenant_id 並不夠。每次讀取、更新、刪除、檔案查詢、快取鍵、背景工作、搜尋索引、即時頻道及匯出,都必須帶有相同的租戶邊界。
測試直接物件參照:
- 以租戶 A 登入並建立一筆記錄。
- 改以租戶 B 登入。
- 透過每一條公開 API 路徑,以 ID 請求租戶 A 的記錄。
- 對更新、刪除、匯出、檔案及訂閱端點重複測試。
- 在適當情況下,確認伺服器對不存在與未授權的記錄回傳相同且不揭露資訊的結果。
多租戶代理基礎設施指南一併說明資料庫、配額與共用狀態的邊界。
寫入需要防止重播
網路失敗會產生結果未知的狀況:伺服器可能已經提交寫入,但用戶端沒有收到回應。如果代理或瀏覽器在沒有冪等鍵的情況下重試,一次點擊就可能產生兩筆訂單、訊息、部署或費用。
每項寫入都要定義邏輯操作 ID、保存第一次執行的結果、拒絕同一鍵搭配衝突參數,並記載保留期限。代理重試與檢查點中的復原流程,處理呼叫端無法判斷第一次嘗試是否完成的情況。
遷移需要復原路徑
生成的遷移所受到的審查往往少於生成的應用程式碼,儘管它可能改變每一筆既有資料。套用遷移前:
- 檢查生成的 SQL,而不只看 ORM 指令;
- 找出鎖定、資料表重寫及破壞性子句;
- 使用與正式環境規模相近的資料副本執行;
- 在轉換期間測試新舊兩版應用程式;
- 為部署到一半的情況定義回復或向前修復方式。
不要因為某個程式開發代理自己寫了遷移,就授予它不受限制的正式環境 DDL 權限。Supabase 的 MCP 安全指南明確建議使用開發專案、限制專案範圍,並避免接觸正式環境資料。任何後端工具都應採用同樣的規則。
成本需要由伺服器強制設限
依租戶及工作流程限制模型呼叫、付費工具、資料庫請求、背景工作、儲存空間與執行時間。只在提示詞中要求代理壓低成本,並不會形成實際限制。
計算每個完成成果的成本時,也要計入失敗與重試執行。AI 代理基礎設施成本指南提供計算方式與預算控制點。
基礎設施應直接提供安全路徑
後端預設就應回傳範圍受限的憑證、結構化錯誤、冪等寫入、狀態記錄與有界限的服務存取。審查可以抓出一次缺失,平台合約則能防止每個新專案重複遺漏同一項控制。
Cohesivity 為程式開發代理提供隔離租戶,以及支援的後端服務之伺服器端存取路徑,而且不會揭露上游供應商憑證。應用程式本身仍要負責資料列層級授權、核准規則與安全的結構描述設計。
邀請任何人之前,先執行第二位使用者測試
在可拋棄的環境中使用兩位使用者與兩個租戶,嘗試跨租戶 ID、重複寫入、過期憑證、失敗的遷移及耗盡的限制。逐項記錄確切請求與伺服器結果。
下方提示詞會在不更動任何內容前,把這項審查轉成逐檔稽核。