跳至主要內容

比對與取代 ​

比對與取代會在流量通過代理時自動修改流量,不必暫停,也不必對每個請求手動操作。

規則的運作方式 ​

每條規則定義要尋找的內容及處理方式。當請求或回應符合條件時,規則會立即套用轉換。

規則依清單中的順序套用。如果兩條規則針對同一個標頭,第一條符合的規則會先套用,後續規則看到的是該項變更的結果。

規則欄位 ​

欄位說明
名稱規則的標籤。請使用能說明用途的名稱。
方向規則套用至請求、回應或兩者
操作要執行的轉換(請參閱下方操作表格)
比對模式依操作而定,可為字面文字、正規表示式或完整內容
比對值要尋找的字串或模式
取代值要替換成的值
已啟用不必刪除規則即可啟用或停用的開關
篩選條件選填的方法、主機、路徑和 HTTPQL 條件,用於限制規則的套用範圍

操作 ​

操作功能
新增標頭新增具有固定名稱和值的標頭
移除標頭依名稱刪除標頭
取代標頭取代現有標頭的值
取代本文使用比對值取代本文的一部分
路徑 / 查詢 / 查詢參數變更請求路徑或查詢值
請求 / 回應行變更選取的 HTTP 起始行組成部分
狀態碼變更回應狀態
原始訊息同時轉換 HTTP 起始行、標頭和本文
WebSocket 酬載取代符合條件的用戶端/伺服器訊息內容
工作流程對選取的內容執行已啟用的轉換工作流程

比對模式 ​

字面文字會比對完全相同的字串,適用於固定權杖、標頭名稱或特定值。

正規表示式會使用正規表示式比對。目標內容會變化時可使用此模式,例如比對每個工作階段都會變更的權杖,或擷取群組並在取代時重複使用。

在正規表示式取代中,使用 $1、$2 等擷取群組,在取代值中參照符合的部分。

整段取代會將選取的完整內容傳給轉換,不會尋找子字串。有些操作,例如新增/移除具名標頭,使用的是字面名稱,因此不會提供所有模式。

轉換完整回應本文 ​

  1. 建立並啟用轉換工作流程,再用測試輸入驗證。
  2. 建立比對與取代規則,將方向設為回應,操作設為工作流程 (本文)。
  3. 選擇整段取代比對模式,並選擇工作流程。
  4. 使用 HTTPQL 篩選條件縮小規則範圍,例如:
text
req.host.eq:"cdn.example.com" AND (req.path.cont:".js" OR resp.headers["Content-Type"].value.cont:"javascript")

工作流程會接收完整本文,其輸出會取代該本文。工作流程 (標頭)轉換具名標頭,工作流程 (原始標頭)則轉換標頭區塊。這些輸入與回應本文不同。

HTTPQL 篩選條件會在可用的請求/回應上下文中檢查。請求方向的規則不能依賴尚未到達的回應。規則產生大量執行時,請停用工作流程記錄;診斷轉換問題時再暫時啟用。

重新排列規則 ​

拖曳規則列,調整其在清單中的位置。當規則修改同一個請求或回應中重疊的部分時,順序很重要。

AI 輔助 ​

在規則編輯器中按一下 使用 AI 填入,以自然語言描述想要的變更。Ogma 會根據描述產生規則欄位。啟用前,請檢查並調整產生的值。

有效提示的範例:

  • 「移除所有回應中的 X-Frame-Options 標頭」
  • 「將 Authorization 標頭值取代為我的測試權杖」
  • 「在所有請求中新增名為 X-Debug、值為 true 的標頭」

測試規則 ​

將規則套用至即時流量前,請先用範例請求測試:

  1. 開啟規則編輯器。
  2. 將原始 HTTP 請求貼到測試面板。
  3. 按一下套用規則。面板會顯示結果,以及套用了哪些規則。
  4. 確認輸出符合預期。
  5. 啟用規則。

測試面板也提供回應目標,包含狀態、標頭和本文輸入。請檢查已套用的規則清單:測試的是適用的規則,不只是孤立的編輯器欄位。

比對與取代與攔截 ​

比對與取代會自動執行。規則啟用後,無須你採取任何操作,就會轉換每個符合條件的請求或回應。

攔截會暫停流量,等待手動決定。當正確的變更取決於需要逐一請求評估的上下文時,請使用攔截。同一項轉換應每次套用且不必檢查時,請使用比對與取代。

常見用途 ​

  • 替換所有請求中的工作階段 Cookie,以測試另一個帳號。
  • 新增啟用除錯或管理員模式的標頭。
  • 移除回應中的安全標頭,評估用戶端行為。
  • 取代重新導向回應中寫死的主機。
  • 重寫請求路徑前綴。

專有軟體。保留所有權利。