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 秒
- 這些是伺服器端錯誤,最適合使用指數輪詢的錯誤類型。