Google 建議您在管理及執行應用程式時,遵循下列最佳做法。
保護 API 金鑰
您需要 API 金鑰才能使用我們的線上服務,而其用途有助於 Google 計算用量。建議您限制 API 金鑰,以防未經授權的使用行為。
API 金鑰限制的類型
API 金鑰限制有兩種類型,您可以同時使用這兩種限制。
限制類型 | 限制金鑰用途: |
---|---|
API 限制 | 特定 API。 |
應用程式限制 | 特定 IP 位址、網站或應用程式。 |
API 金鑰限制建議
建議您針對下列情境採用不同的 API 金鑰。
情境 | 建議 |
---|---|
您的後端遊戲伺服器會呼叫 Playable Locations API,以擷取可播放的位置。 | 設定設有兩項限制的金鑰:
|
您的應用程式 Android 版本會呼叫 Maps SDK for Unity,擷取地理資料。 | 設定具有應用程式限制的金鑰,僅允許來自 Android 版本應用程式的呼叫。 |
您的應用程式 iOS 版本會呼叫 Maps SDK for Unity API 來擷取地理資料。 | 設定具有應用程式限制的金鑰,僅允許來自 iOS 版本應用程式的呼叫。 |
詳情請參閱 API 安全性最佳做法。
如何設定 API 金鑰限制
- 前往 Google Cloud 控制台的憑證面板。
- 選取要設定限制的 API 金鑰,畫面隨即顯示 API 金鑰屬性頁面。
- 在「金鑰限制」下方,選取「應用程式限制」分頁標籤,然後選取四種應用程式限制類型中的其中一種。
限制類型 說明 HTTP 參照網址 接受由您提供的網站清單中所列的要求。 IP 位址 接受由您提供的網路伺服器 IP 位址清單中所列的要求。 Android 應用程式 新增套件名稱和 SHA-1 簽署憑證指紋,即可限制 Android 應用程式的使用活動。 iOS 應用程式 iOS 應用程式軟體包 ID 必須與您提供的 ID 吻合,才接受該應用程式送出的要求。 - 在「金鑰限制」下方,選取「API 限制」分頁標籤,然後選取要限制 API 金鑰的 API。
- 按一下「Save」。
支援 API 金鑰更新
確認您有可更新服務堆疊的 API 金鑰的基礎架構。如此一來,即使 API 金鑰遭駭,遊戲還是可以復原,且您會需要在短暫通知時更新遊戲。
針對各個應用程式使用不同的金鑰,這樣您就可以輕鬆替換一個金鑰,而不會影響其他應用程式。
遊戲伺服器安全性建議
如果 Playable Locations API 伺服器因任何原因而中斷,當多個遊戲伺服器同時嘗試重新連線時,伺服器恢復連線時會發生問題。這種 QPS 高峰可能會將伺服器傳送至 DoS 模式,而這會封鎖連入流量,大幅減輕這個情況。
為減緩此問題,Google 要求您在遊戲伺服器上實作二進位檔指數輪詢。這是有系統地安排連線重試的系統方法。具體來說,您實作的演算法會在嘗試重新連線失敗後等待 N 秒,然後再試一次。如果下次嘗試失敗,演算法會加倍等候期,然後再試一次。如果下次嘗試失敗,演算法再次會將等待期加倍,然後再試一次。每次嘗試後,您可以繼續將等待期加倍,直到最終嘗試成功為止。
處理 HTTP 傳回狀態碼
建議您針對部分 HTTP 傳回代碼 (而非全部) 實作二元指數輪詢。
- 400 秒
- 這些用戶端錯誤通常不會復原,因此重試產生這類錯誤代碼的要求將無法運作。您應該在測試期間找出這些類型的錯誤。
- 429
- 這是資源已用盡的錯誤,會在您開始用完 API 配額時發生。如要查看專案的 API QPS 限制,請前往 Google API 配額頁面。
- 500 秒
- 這些是伺服器端錯誤,指數輪詢最適用於這種錯誤。