原則
外掛程式工具可以存取使用者資料、呼叫第三方 API,以及執行寫入動作。請將 每個 MCP 伺服器和 UI 元件都視為正式環境軟體:
- 最小權限: 僅要求必要的授權範圍、儲存空間存取權和網路權限。
- 使用者明確同意: 確保使用者在連結帳戶 或授予寫入權限時,清楚瞭解自己正在進行的操作。對於破壞性動作, 請使用主機的確認提示。
- 縱深防禦: 假設提示注入和惡意輸入都會進入你的伺服器。檢查每項輸入,並保留稽核紀錄。
資料處理
- 結構化內容: 僅包含目前提示詞所需的資料。避免在元件屬性中嵌入機密資訊或 Token。
- 儲存: 決定使用者資料的保留期限,並公布保留政策。遵循使用者的刪除要求。
- 日誌記錄: 寫入日誌前,請先遮蔽個人識別資訊(PII)。儲存關聯 ID 以便偵錯,但除非必要,否則避免儲存原始提示詞文字。
提示注入與寫入動作
開發人員模式會啟用完整的 MCP 存取權,包括寫入工具。請採取下列措施降低風險:
- 定期審查工具說明,以防止誤用(例如「請勿用於刪除紀錄」)。
- 在伺服器端驗證所有輸入,即使輸入是由模型提供。
- 要求不可逆的操作必須經過人工確認。
與品質工程團隊分享你最有效的注入測試提示詞,讓他們能及早找出弱點。
網路存取
小工具在隔離的 iframe 中執行,並受嚴格的內容安全性政策約束。
小工具無法存取需要特殊權限的瀏覽器 API,例如 window.alert、
window.prompt、window.confirm 或 navigator.clipboard。CSP 會管控
標準的 fetch 請求。預設無法使用巢狀框架;請在
資源的 CSP 中繼資料(例如
_meta.ui.csp.frameDomains)中啟用特定來源。外掛程式可以嵌入其 MCP 伺服器
自身可註冊網域內的頁面,包括現有的編輯器和管理介面。請參閱
iframe 政策,瞭解
網域擁有權、須提供的理由及審查要求。
小工具的 CSP 會限制 iframe 可載入的目的地。嵌入的
頁面使用自己的 CSP;小工具的 connectDomains 和 resourceDomains
允許清單不會限制該頁面內發出的網路請求。請明確指定 iframe 的
來源,並將嵌入的使用體驗納入安全性審查。
伺服器端程式碼除了託管環境所施加的網路限制外,沒有其他網路限制。對外呼叫請遵循一般最佳實務(TLS 驗證、重試、逾時)。
身分驗證與授權
- 整合外部帳戶時,請使用 OAuth 2.1 授權碼流程。
當授權伺服器支援 CIMD,
且外掛程式建立者選擇使用時,請優先採用 Client ID Metadata Documents(CIMD)。公開用戶端的 Token 交換請使用
none; 若授權伺服器要求用戶端身分驗證,則使用private_key_jwt。 當外掛程式建立者選擇 DCR,或 CIMD 無法使用時,請支援 DCR。 - 每次工具呼叫都要驗證並強制執行授權範圍限制。若 Token 已過期或格式錯誤,請傳回
401回應。 - 使用內建身分識別功能時,請避免儲存長期有效的機密資訊,改用提供的身分驗證上下文。
維運準備
- 上線前請進行安全性審查,尤其是處理受法規管制的資料時。
- 監控異常流量模式,並針對重複發生的錯誤或身分驗證失敗的嘗試設定警示。
- 持續為第三方相依套件、程式庫和建置工具套用修補程式,以降低供應鏈風險。
安全性與隱私權是使用者信任的基礎。請將兩者融入規劃、實作和部署工作流程,而非事後才補上。