本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
GAMESEC03-BP03 使用您的遊戲後端服務來驗證玩家加入多玩家遊戲的請求
一般而言,在多玩家遊戲中,玩家會直接從可用工作階段清單中選擇一個選項來加入遊戲工作階段,或者提交請求來尋找配對。後者方法會讓遊戲開發人員負責尋找合格的遊戲工作階段,並將連線資訊 (通常是 IP 地址和連接埠號碼) 提供給玩家的遊戲用戶端。實作可能會因您正在開發的遊戲類型而有所不同,但無論如何,安全最佳實務是對 玩家加入遊戲的請求執行伺服器端驗證。
未建立此最佳實務時的曝險等級:中
實作指引
例如,在以工作階段為基礎的多玩家遊戲 中,來自玩家加入遊戲工作階段的請求,應在授權其與伺服器的連線之前,由您的遊戲伺服器軟體與您的遊戲後端配對服務進行驗證。當玩家請求加入遊戲工作階段時,遊戲伺服器應檢查請求是否有唯一識別符,例如玩家工作階段 ID 和先前由遊戲後端配對服務提供給遊戲用戶端的伺服器產生票證。
啟動與遊戲伺服器的連線時,您的伺服器端軟體可以使用此資訊與配對服務驗證玩家的連線請求是否有效,並確認 玩家未加入先前為其他玩家在遊戲工作階段中預留的位置。
對於託管在 Amazon GameLift 上的遊戲,請參閱遊戲用戶端/伺服器與 Amazon GameLift 伺服器的互動 ,以取得如何實作此類伺服器端驗證的範例。
客戶範例
在 AnyCompany Games 初始 Beta 版推出期間,他們發現玩家直接連線到遊戲伺服器,繞過配對系統,導致嚴重的競爭完整性問題。當排名較高的玩家發現他們可以與好友共用伺服器 IP 地址時,他們開始規避以技能為基礎的配對系統,導致經驗豐富的玩家加入新手配對,並為新玩家創造令人沮喪的體驗。AnyCompany Games 回應的方式是實作伺服器端驗證系統,為每個配對請求產生唯一的工作階段票證。系統需要玩家 IDs 和配對請求票證,以及對其後端配對服務的驗證連線嘗試。
實作步驟
-
使用玩家工作階段 IDs 和伺服器產生的票證等唯一識別符,驗證玩家加入請求伺服器端。
-
使用配對服務確認連線請求的有效性,以封鎖未經授權的存取。
-
在驗證程序期間,確認未經授權的玩家無法存取遊戲工作階段中的預留位置。