Isoline 指南

瀏覽器設定檔自動化的最小權限設計

讓腳本與代理取得足以完成核准任務的權限,同時避免普遍存取設定檔、機密或不可逆操作的實用控制模型。

先定義完整的授權範圍

NIST 將最小權限定義為:限制使用者及代其行動的程序,只取得指派任務所需的最低存取權。因此,單一 automation 角色對瀏覽器設定檔工作太廣。它說明呼叫者是誰,卻沒說能開哪個設定檔、能到哪個網站、能改什麼,或許可持續多久。

有用的授權範圍包含八個維度:

維度 應回答的問題 穩健預設
行為者 哪個人、工作負載或代理發起作業? 每人或工作負載一個可追責身分
租戶 適用哪個組織或客戶邊界? 單一組織,不跨租戶
設定檔集合 可使用哪些確切設定檔? 明確 ID 或經審閱的資料夾/標籤選擇條件
操作 自動化能做什麼? 具名業務操作,而非檔案系統或程序原語
目的地 可連線哪些網站、API 或環境? 僅核准來源與環境
時間 權限何時開始、到期? 短期憑證與有界作業時間
速率 可以做多少工作? 並行、要求與成本限制
副作用 可以改、發布、刪除或花費什麼? 先唯讀,高影響操作需核准

每個命令都應重新評估政策。成功啟動設定檔,不得默默取得 Cookie 匯出、團隊管理、帳務變更,或對所有可到達網站行動的權限。

分開三種權力來源

瀏覽器自動化常將三種憑證混在同一流程:

  1. 自動化憑證授權呼叫設定檔管理工具或自動化服務。
  2. 設定檔工作階段狀態可能讓某人或測試帳號在網站登入。
  3. 目標服務的委派權限決定該帳號在網站能做什麼。

這些不能互換。自動化權杖不應包含或揭露設定檔 Cookie;已登入設定檔不證明呼叫者有權執行所有可用操作;網站密碼或 OAuth 權杖不應重用為設定檔管理憑證。

這個區分很重要,因為已驗證瀏覽器狀態本身敏感。Playwright 提醒,儲存狀態可能包含能冒用測試帳號的 Cookie 與標頭。應視為含機密產物,排除於版本控制、一般紀錄、聊天逐字稿、問題追蹤與一般自動化輸出之外。

遠端瀏覽器控制也需同樣謹慎。從 Chrome 136 開始,Chrome 不再對預設資料目錄接受遠端偵錯開關,並建議使用自訂目錄,將偵錯與真實設定檔分開。Google 在 2025 年 3 月 17 日安全公告中,將透過遠端偵錯擷取 Cookie 列為變更原因。不要為了省事,把自動化接到個人日常瀏覽器設定檔。

分配權限前先分類操作

控制介面應表達業務操作及風險,而不是開放一條不受限制的瀏覽器連線。

操作類別 範例 預設控制
觀察 列出允許的設定檔、讀取健康狀態、查看已遮蔽狀態 以狹窄唯讀範圍允許
生命週期 啟動、停止、取得設定檔租約、建立測試快照 僅限具名設定檔,每次轉換記錄
互動 前往核准來源、執行指定測試、下載測試產物 限制目的地、輸入、輸出路徑與時間
高影響 提交內容、重設測試資料、改權限、產生成本、刪除設定檔 預覽、明確核准與更強政策
涉及機密 匯出 Cookie、憑證、代理密碼、復原資料或原始狀態 一般自動化介面拒絕提供

風險取決於情境。向可丟棄的預備帳號提交表單,可能是一般測試;在正式帳號做同一動作,可能產生法律、金錢或聲譽影響。決策應綁定環境、帳號與確切變更。

發出狹窄且短期的憑證

每項工作負載使用不同服務身分,不要把人類管理員的工作階段借給持續整合(CI)、本機腳本或代理。實用權杖應限制:

  • 組織,以及適用時的客戶或工作區;
  • 設定檔 ID、資料夾、標籤或其他穩定資源選擇條件;
  • 允許操作;
  • 預定服務或接收對象;
  • 發出時間、到期與撤銷狀態;
  • 平台支援時的裝置或工作負載身分;
  • 並行、速率與成本上限。

RFC 9700建議將存取權杖限制為最低所需權限,包括預定資源伺服器、資源與操作,也說明限制接收對象為何可降低權杖外洩影響。目前的 MCP 授權規格同樣要求驗證接收對象,並讓用戶端只請求預定操作所需範圍。

優先逐步授權。作業開始只有探索與預覽權;後續若需要更強權限,再為該步驟取得新的短期授權。不要因為某條分支將來可能需要,就發出永久全權權杖。

MCP 或其他中介應將上游憑證分開。MCP 授權安全考量要求資源專屬權杖,禁止把收到的 MCP 權杖透傳給上游 API。一般自動化閘道也適用同一原則:每個信任邊界驗證自己的憑證,僅發出或取得核准操作所需的下游權限。

讓核准具體且可驗證

核准應回答「核准什麼?」籠統的「允許這個代理」,可能超出審查者理解的範圍。

高影響命令的預覽應包含:

  • 發起人與工作負載;
  • 組織、設定檔、目標帳號與目的地;
  • 容易理解的變更說明;
  • 確切受影響資源與最大數量;
  • 若有,預期成本或外部效果;
  • 即將改變的值,機密須遮蔽;
  • 回復或復原路徑;
  • 短期核准有效期;
  • 為何較低權限不足以繼續。

將核准綁定正規化要求摘要、政策版本與設定檔版本。不可逆或外部可見操作使用一次性核准。要求、目的地、資源數量或相關狀態改變時,使核准失效並重新呈現預覽。

核准不能取代授權。審查者不能授予組織本來沒有的權利,提示也不應把禁止流程變成可接受流程。

讓失敗時的執行安全

最小權限也限制出錯後的影響。執行契約應包含設定檔租約、前置條件、有界重試、取消與復原行為。

失敗 安全回應
權限遭拒 停止並回報缺少權限,不自動升權
設定檔使用中 不啟動第二寫入者;有限等待或回傳明確衝突
執行中租約遺失 停止新操作、保留遮蔽後證據,進入復原路徑
讀取前網路逾時 只在宣告次數與期限內重試
提交後斷線 標記結果未知;除非目標有安全冪等機制,否則不重做
核准到期或要求改變 取消操作,重新預覽與核准
稽核目的地不可用 依明確政策處理;高影響操作通常應封鎖,低風險事件可用受保護且有界本機緩衝
快照或還原驗證失敗 隔離受影響狀態,不覆寫最近正常版本

每個修改命令都應定義是否冪等、檢查哪些前置條件,以及呼叫者如何在中斷後查明最終結果。「任何錯誤都重試」不適用於提交、購買、刪除、邀請與權限變更。

記錄決策,不記錄機密

稽核事件應讓操作可重建,而非變成第二個憑證庫。OWASP 記錄指引建議記錄授權失敗與高風險操作,保留何時、何地、誰、做什麼,並保護紀錄存取;也提醒紀錄可能暴露密碼與其他技術機密。

每個自動化決策記錄:

  • 人員、服務與受委派行為者身分;
  • 組織與遮蔽後設定檔參照;
  • 命令名稱、要求 ID,以及適用的冪等金鑰;
  • 政策版本、決定與原因代碼;
  • 已核准操作的核准參照與核准者;
  • 遮蔽後目的地與資源數量;
  • 開始、完成時間與結果;
  • 瀏覽器、用戶端與自動化轉接器版本;
  • 復原、取消或人工審查狀態。

不要記錄 Cookie 值、密碼、存取或更新權杖、授權標頭、代理憑證、加密金鑰、完整頁面內容、表單值或原始設定檔封存。網址也應最小化,因為路徑與查詢字串可能含個資或機密。保護稽核存取、定義保留期限,並測試記錄緩慢、已滿或不可用時的行為。

具體政策範例

以下虛擬碼是設計範例,不是 Isoline 配置。它只授權 CI 工作負載對預備環境設定檔執行區域冒煙測試:

principal: "workload:regional-smoke-tests"
tenant: "org:example-studio"
profiles:
  selector: "tag == qa-staging"
operations:
  allow:
    - "profile.read"
    - "profile.launch"
    - "test.run-approved-suite"
    - "profile.stop"
  deny:
    - "profile.export-session-state"
    - "profile.delete"
    - "team.manage"
destinations:
  allow:
    - "https://staging.example.test"
conditions:
  expiresAt: "2026-08-26T18:00:00Z"
  maxConcurrentProfiles: 2
  maxRuns: 20
  requireCleanStop: true
approvals:
  "staging-data.reset": "single-use-human-approval"
onUnknownSideEffect: "stop-and-review"

政策不授予一般瀏覽、正式環境存取、機密匯出、團隊管理或無限新增範圍的能力。冒煙測試若需要新來源或操作,應經政策審查,不在執行時自行推斷。

審查清單

啟用設定檔自動化前,確認:

  • 系統擁有者及適用時的客戶,已記錄允許用途;
  • 每個人與工作負載都有可追責身分;
  • 權杖受租戶、設定檔、操作、接收對象、時間與速率限制;
  • 目標帳號只有任務所需角色;
  • 排除日常私人設定檔;
  • 一般讀取與紀錄不會出現工作階段狀態或其他機密;
  • 高影響操作有具體預覽與會到期的核准;
  • 設定檔鎖定防止並行寫入;
  • 修改命令定義前置條件、冪等性與未知結果處理;
  • 取消、撤銷、中斷與還原路徑已測試;
  • 稽核軌跡可重建決策而不暴露敏感內容;
  • 授權撤回或目標服務拒絕操作時,流程停止。

限制

最小權限減少失誤與憑證外洩的影響,不會讓未授權流程變得可接受,也不保證第三方允許操作。Playwright 瀏覽器情境文件所述分離可改善測試隔離,但不會把一台機器變成多台獨立受信任裝置。受侵入端點、惡意擴充功能、權限過大的目標帳號或不安全下游服務,仍可能破壞預期邊界。

流程改變時重新檢查權限。移除未使用範圍、讓不活躍憑證到期、重測拒絕路徑,並將要求原始工作階段資料視為獨立高風險安全審查,而非一般自動化功能。

關於本指南

AI 協助
本文使用 AI 從英文原文翻譯。Isoline 對發布內容負責。目前尚無人工語言審閱紀錄。

來源

來源支持下列主題。查閱日期表示引用資料何時經過確認。

  1. NIST 詞彙表:最小權限 National Institute of Standards and Technology
    支持的主題
    使用者與代其行動的處理程序所需最小權限之定義。
    查閱日期
  2. RFC 9700:OAuth 2.0 安全最佳現行實務 Internet Engineering Task Force
    支持的主題
    存取權杖的權限、資源、操作、接收對象、有效期與傳送者限制指引。
    查閱日期
  3. 支持的主題
    MCP 用戶端及伺服器的資源、接收對象驗證與最小範圍請求。
    查閱日期
  4. 支持的主題
    資源專屬權杖、混淆代理防禦,以及禁止向上游透傳權杖。
    查閱日期
  5. Playwright 驗證指引 Microsoft Playwright
    支持的主題
    儲存的瀏覽器狀態含有機密,不應進入版本控制或一般輸出。
    查閱日期
  6. Playwright 瀏覽器情境隔離 Microsoft Playwright
    支持的主題
    瀏覽器情境狀態隔離,以及它是測試邊界而非新受信任裝置的限制。
    查閱日期
  7. Chrome 遠端偵錯安全變更 Chrome for Developers
    支持的主題
    Chrome 136 遠端偵錯變更、預設設定檔保護與自訂使用者資料目錄指引。
    查閱日期
  8. OWASP 記錄指南 OWASP Foundation
    支持的主題
    授權及高風險事件紀錄、有用欄位、存取控制與排除機密。
    查閱日期
提出更正建議