簡體   English   中英

如何防止用戶在使用function時惡意調用HUAWEI Push Kit的消息回執function API?

[英]How can I prevent users from maliciously calling HUAWEI Push Kit's message receipt function API when I use the function?

由於谷歌禁止新的華為設備使用GMS,我的應用程序的華為手機用戶經常抱怨他們無法收到通知消息。 所以我最近開始使用HUAWEI Push Kit。 整合過程順利。 我已經完成了整合,並在華為應用市場上發布了我的應用。 用戶現在可以接收通知消息。

但是現在我發現了以下與推送數據有關的問題:

使用 FCM,我可以使用 BigQuery 進一步分析消息推送數據,例如發送消息的數量和接收的消息數量。 例如,我可以執行以下語句來收集應用程序發送消息數的統計數據:

SELECT app_name, COUNT(1)
FROM `project ID.firebase_messaging.data`
WHERE
_PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD')
AND event = 'MESSAGE_ACCEPTED'
AND message_id! =''
GROUP BY 1;

看了HUAWEI Push Kit文檔,沒有找到類似BigQuery的function。

但是,我找到了消息回執,它也可以用於收集統計數據。 因此,我開發了一個收據 API 並在 Push Kit 控制台上進行了配置。 經過測試,我現在可以收到推送數據了。

現在,當我計划發布我的應用程序時,我需要驗證調用者,因為消息回執 API 在公共網絡上是公開的。 如何驗證調用方以防止惡意 API 調用?

HUAWEI Push Kit的消息回執function允許設置用戶名和密碼進行身份驗證。 您可以使用此 function 來防止惡意 API 調用。 過程如下:

  1. 在HUAWEI Push Kit控制台配置消息回執時設置用戶名和密碼。
  2. 當華為調用您的收據API時,在HTTP header中增加X-HUAWEI-CALLBACK-ID參數。 參數值由以下部分組成:

一個。 timestamp : 系統的 UTC 時間戳。

灣。 nonce : 隨機 UUID。

c。 value :待加密字符串(由timestamp的值、 nonce的值和回調用戶名組成)使用HMAC-SHA256算法中設置的密碼加密,然后使用Base64編碼后最終得到的字符串。

例如:

timestamp=1563105451261;nonce=a07bfa17-6d82-4b53-a9a2-07cfef5ceef1;value=E4YeOsnMtHZ6592U8B9S37238E+Hwtjfrmpf8AQXF+c=
  1. 收到請求時,收據API可以獲取HTTP header中X-HUAWEI-CALLBACK-ID的值來判斷調用者是否合法。

欲了解更多信息,請訪問消息回執

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM