Webhook 與整合
驗證 webhook 簽章
要在解析 JSON 之前,對原始請求主體計算簽章,並用常數時間比較。把內容重新序列化會改變位元組,簽章從此再也對不上。
步驟
- 把原始主體當作位元組抓住。多數框架預設給你的是已解析的物件,那時已經太遲。
- 就對那些位元組本身,用你這一端的密鑰計算簽章。
- 用常數時間比較來核對,而不是字串相等。
- 只有在簽章驗證通過之後,才去解析 JSON。
- 拒絕一切不通過的,並且記錄遞送 ID 而不是請求主體。
如何驗證結果
真實的遞送能通過驗證,而同一份內容改動一個字元就通不過。
常見的出錯之處
- 在算簽章之前先解析、又重新序列化。
- 解析主體的中介軟體搶在你的處理函式之前把串流吃掉了。
- 對簽章用了樸素的
===,它會從耗時上洩漏。
這篇文章解決了你的問題嗎
這沒有幫上忙
請寫信給我們,附上平台與版本、你走過的步驟、期望的結果,以及相關的工作區或 QR Code。附上任何東西之前,請先遮蔽全部機密資訊。
寫信給支援團隊