解析 Webhook 請求結構
在整合第三方服務時,掌握 Webhook 請求的實際結構是確保系統穩定對接的關鍵。Webhook 請求本質上是 HTTP 請求,由特定的 HTTP 方法、請求標頭以及請求內容(Body)組成。
透過觀察這些組成部分,開發人員可以釐清傳送端所使用的資料格式、編碼方式,以及是否附帶安全驗證資訊。在調試過程中,保持原始請求內容的完整性至關重要,因為任何微小的字元變更或格式化操作,都可能影響後續的簽章驗證與解析結果。
請求標頭與傳輸格式
請求標頭在 Webhook 通訊中扮演著傳遞元數據(Metadata)的角色。其中最關鍵的是 Content-Type,它決定了接收端應如何解析請求內容。
本工具支援分析以下兩種常見的 Webhook 請求內容格式:
- JSON 格式:通常伴隨
application/json標頭。工具會使用JSON.parse進行解析並重新排序,這意味著原始的空白字元與欄位順序將會改變。 - URL 編碼表單:通常伴隨
application/x-www-form-urlencoded標頭。工具會自動偵測並將其格式化。
對於其他格式(例如 XML、multipart 或二進位資料),工具則會保持其原始純文字狀態,不作額外格式化處理。
簽章欄位與安全驗證概念
為了確保 Webhook 請求是由信任的第三方發送,發送端通常會在請求標頭中加入安全簽章(Signature)與時間戳記(Timestamp)。
本工具會根據常見的名稱模式(例如 signature、hmac、digest 以及常見的時間戳記名稱)自動識別並列出這些標頭。然而,必須強調的是,僅找到簽名欄位並不代表請求是真實的 — 實際驗證需要傳送者的簽名規則、密鑰(secret 或 key)以及原始請求的位元組。本工具並不會計算 HMAC、執行演算法、比對原始位元組、處理密鑰、檢查重放攻擊防護時間窗(Replay Window),亦不會進行任何特定平台或服務商的驗證流程。
本地 cURL 測試命令生成
在本地開發環境中重現與調試 Webhook 請求,最直接的方法是使用 cURL 工具。
本工具在解析您貼入的請求後,會自動生成一個標準的 Shell 引用 cURL 命令。該命令的目標網址固定指向 http://localhost:3000/webhooks,方便開發人員在本地終端機直接複製並執行,將模擬的 Webhook 請求發送至本地開發中的伺服器進行測試。
輸入限制與錯誤處理
為了確保瀏覽器運作流暢,工具設有以下輸入限制與對應的錯誤提示:
- 請求標頭限制:最多支援 200 行非空標頭,且總字元數不得超過 100,000 個字元。
- 若超出長度限制,會顯示:請求標頭過長,請移除無關或重複的值。
- 若超出限制行數,會顯示:請求標頭行數過多,請保留在 200 行內。
- 若標頭格式不符合
Name: value,會顯示:第‹line›行標頭無效,請使用「名稱: 值」格式。
- 請求內容限制:最大支援 1,000,000 個字元。
- 若超出長度限制,會顯示:請求內容過長,請控制在 1,000,000 個字元內。
- 若內容疑似 JSON 但解析失敗,會顯示:請求內容看起來是 JSON,但無法解析。
- 若表單內容編碼不完整,會顯示:表單內容含有不完整的百分比編碼。
- 空白輸入:若未輸入任何資料,會顯示:請先貼上至少一個請求標頭或請求內容。
隱私與瀏覽器端處理說明
當您使用本工具檢查 Webhook 請求時,所有貼上的請求內容與標頭資訊完全只會在您的瀏覽器中進行處理。BroBroGo 不會上傳、傳送或儲存您的任何請求數據,確保敏感的 Webhook 資訊不會流向外部伺服器。
常見問題
此頁面可以接收即時 webhook 回呼嗎?
不能。請將已擷取的請求貼到這裡檢查。本頁不會建立公網端點、接收回呼或送出產生的測試請求。
可以檢查哪些 webhook 請求內容?
本工具會辨識並格式化 JSON 與 URL 編碼表單;XML、multipart、二進位等其他內容會保留為純文字,不會猜測格式。
找到簽章欄位是否證明請求是真的?
不能。這裡只會列出簽章與相關時間戳記標頭。真正的驗證還需要發送方的簽章規則、密鑰或公鑰,以及原始請求位元組。