近期發(fā)現(xiàn)有部分違法犯罪分子為謀取經(jīng)濟利益,利用游戲漏洞給部分玩家進行違規(guī)充值行為。這種行為擾亂了游戲正常運營秩序,極大損害了其他游戲玩家以及游戲開發(fā)商利益。為保證廣大游戲開發(fā)商和游戲玩家利益,請在接入小米游戲SDK過程中,請參考本文檔對比自查小米游戲SDK服務(wù)器端接入工作,避免出現(xiàn)安全相關(guān)風(fēng)險漏洞。
(一)游戲服務(wù)器端總體接入流程
網(wǎng)游接入小米游戲SDK后,典型的工作流程如下:
在上述流程中:
1-8等步驟是游戲登錄過程時序圖。9-18等步驟是游戲支付過程時序圖。支付過程中,除了主動向小米游戲SDK服務(wù)器查詢支付結(jié)果外,還可以被動等待小米游戲SDK服務(wù)器訂單支付結(jié)果通知。
(二)服務(wù)器端登錄接入流程
上圖中的6、7兩步是游戲登錄過程中游戲服務(wù)器和小米游戲SDK服務(wù)器之間的交互。游戲服務(wù)器訪問小米游戲SDK服務(wù)器驗證賬號合法性,是保證游戲玩家賬號真實以及安全的必要操作,網(wǎng)游在登錄過程中不可忽略驗證操作,每次登錄過程中都必須進行session驗證。
(三)服務(wù)器端支付接入流程
上圖中的16、17兩步是游戲支付過程中游戲服務(wù)器和小米游戲SDK服務(wù)器之間的交互。游戲服務(wù)器在收到游戲訂單支付成功通知后,主動訪問小米游戲SDK服務(wù)器接口查詢訂單支付狀態(tài)。這步是保證支付安全的重要操作,強烈建議游戲開發(fā)者務(wù)必接入。
除了游戲服務(wù)器主動訪問小米游戲SDK服務(wù)器查詢訂單支付狀態(tài)外,也可以等待小米游戲SDK服務(wù)器訂單支付結(jié)果通知。但我們推薦優(yōu)先使用主動查詢訂單支付狀態(tài)方式。
(四)其他需要注意的安全事項
1.AppSecret是游戲服務(wù)器和小米游戲SDK服務(wù)器之間通信的密鑰,請務(wù)必保證此密鑰安全。一旦泄露可能會造成相關(guān)安全風(fēng)險。
2.游戲登錄過程中,不可以將小米游戲SDK返回的賬戶和session信息記錄在游戲本地文件里。游戲每次都登陸都必須調(diào)用小米游戲SDK進行登錄,獲取玩家的ID和session,然后訪問小米游戲服務(wù)器端接口校驗用戶session的合法性。
3.在創(chuàng)建游戲訂單的時候(上圖中的9、10),游戲創(chuàng)建訂單接口需要校驗游戲玩家的身份信息(游戲ID、角色ID等所有涉及到用戶身份的ID都必須通過對應(yīng)的session或token進行合法性校驗)。如果創(chuàng)建游戲訂單接口里同時包含了游戲ID和角色ID,請同時校驗游戲ID和角色ID的合法性,不可以只校驗其中的一個而忽略另外一個。
4.游戲玩家支付完成后,游戲服務(wù)器需要到小米游戲SDK服務(wù)器端校驗訂單真實性。在校驗時,務(wù)必校驗signature以及appId、cpOrderId、uid等字段是否匹配。同時,還必須校驗支付訂單的uid和創(chuàng)建游戲訂單的游戲ID是否匹配。所有信息都匹配之后,才能發(fā)貨。
5.為保證游戲內(nèi)登錄和支付過程安全,請參考小米游戲渠道服務(wù)器升級通知完成相關(guān)接口地址整改。