7.驗證訊息的來源
當開發者的Webhook伺服器收到以POST方式所傳送的LINE訊息時,要馬上去驗證該事件訊息是否真的來自LINE平台,以避免被偽造的訊息所欺騙造成資訊安全危機。標準的驗證方式是檢查所收到HTTP請求標頭(HTTP request header)中的數位簽章。
驗證的方法:
1.以Channel secret作為密鑰(Secret key),使用HMAC-SHA256演算法取得HTTP請求本體(HTTP request body)的文摘值(Digest value)。
2.將上述文摘值以Base64編碼,比對編碼後的內容與X-Line-Signature項目內容值是否相同;若是相同,表示該事件訊息是來自LINE平台,否則拒絕處理該事件訊息。
8.盡快回覆LINE平台正確的HTTP狀態碼
不少開發者的程式撰寫方式是在接收到LINE平台的事件訊息之後就立刻進行整個事件處理流程,直到處理完成並回覆發訊者之後,才回覆LINE平台並關閉HTTP連線。然而,LINE平台在傳送事件訊息到開發者Webhook伺服器之後,若是等待10秒鐘沒有得到任何HTTP狀態碼的回覆,就會發生逾時(Timeout)錯誤,LINE平台會關閉該次HTTP連線並認為該次傳送結果失敗;若是一直發生傳送失敗的狀況,LINE平台可能會將該Webhook伺服器封鎖或進行其他處置,造成開發者的應用服務無法正常運作。