管理和執行應用程式時,Google 建議您遵循下列最佳做法。
保護 API 金鑰安全
您需要 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 Console 的憑證面板。
- 選取要設定限制的 API 金鑰,畫面隨即顯示 API 金鑰屬性頁面。
- 在「金鑰限制」下方,選取 [應用程式限制] 分頁標籤,然後選取四個應用程式限制類型之一。
限制類型 說明 HTTP 參照網址 接受由您提供的網站清單中所列的要求。 IP 位址 接受來自您提供的清單中網路伺服器 IP 位址提出的要求。 Android 應用程式 新增套件名稱和 SHA-1 簽署憑證指紋,即可限制 Android 應用程式的使用。 iOS 應用程式 iOS 應用程式軟體包 ID 必須與您提供的 ID 吻合,才接受該應用程式送出的要求。 - 在「金鑰限制」下方,選取 [API 限制] 標籤,然後選取您要限制 API 金鑰的 API。
- 按一下 [儲存]。
支援 API 金鑰更新
請確認您具有基礎架構,可以更新服務堆疊中的 API 金鑰。如此一來,如果您的 API 金鑰遭駭,遊戲就可以復原,而且您需要在短時間內續約。
針對各個應用程式使用不同的金鑰,因此您可以在一個應用程式中輕鬆替換金鑰,而不會影響其他應用程式。
遊戲伺服器安全建議
當 Playable Locations API 伺服器因故中斷服務中斷時,就會發生問題,導致多個遊戲伺服器同時重新連線。這類 QPS 用量可能會使伺服器進入 DoS 模式,透過封鎖連入流量來加強這種情況。
為減少這種情況,Google 會要求您在遊戲伺服器上實作二元指數輪詢。它是將系統重試作業的系統化方法。具體而言,您實作的演算法會在重新連線失敗後等待 N 秒,然後再試一次。如果下次嘗試失敗,您的演算法會加倍等候期,然後再試一次。如果下次嘗試失敗,您的演算法會再次等候等候期,然後再試一次。您每次嘗試後,您的等候期都會持續加倍,直到最終嘗試成功為止。
處理 HTTP 傳回狀態碼
您應為某些 HTTP 傳回代碼實作二元指數輪詢,但不是全部。
- 400 秒
- 這些用戶端錯誤通常是正常發生的,因此,如果傳回失敗的要求,這些錯誤代碼就會失效。您應在測試時找出這類錯誤。
- 429
- 當您開始耗用 API 配額時,就會發生資源用盡的錯誤。如要查看專案的 API QPS 限制,請前往 Google API 配額頁面。
- 500 秒
- 這些是伺服器端錯誤,指數輪詢錯誤最適合這類錯誤。