POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY
如果應用程式呼叫的 Firebase API 需要行動/網路用戶端提供的 API 金鑰,應用程式會自動在 Firebase 設定檔/物件中尋找專案 API 金鑰。不過,您可以使用環境變數等不同機制設定 API 金鑰。
套用 API 金鑰限制 (建議)
雖然您不一定要將 Firebase 服務的 API 金鑰視為密鑰,但在某些情況下,建議您採取其他措施來保護專案以免專案 API 金鑰濫用。
如果使用密碼式驗證,請提高配額
如果您使用密碼式 Firebase 驗證,且有人持有您的 API 金鑰,只要該資料受到 Firebase 安全性規則保護,該使用者就「無法」存取您 Firebase 專案的資料庫或 Cloud Storage 資料。不過,他們可以使用您的 API 金鑰存取 Firebase 的驗證端點,並對您的專案提出驗證要求。
為了降低有人濫用 API 金鑰嘗試暴力攻擊的可能性,您可以縮減 identitytoolkit.googleapis.com 端點的預設配額,以反映應用程式預期的流量。請注意,如果您放寬配額後,應用程式突然增加了使用者,系統可能會發生登入錯誤,直到您提高配額為止。您可以在 Google Cloud 控制台中變更專案的 API 配額。
針對任何非 Firebase 服務使用個別且受限制的 API 金鑰
雖然用於 Firebase 服務的 API 金鑰通常不必被視為密鑰,但仍建議您針對與其他 Google Cloud API 搭配使用的 API 金鑰採取額外的預防措施。
如果您使用的 Google Cloud API (在任何平台上) 並非用於 Firebase 服務 / 產品,強烈建議您另外建立受限制的 API 金鑰,以便搭配這些 API 使用。如果 API 是計費的 Google Cloud 服務,這一點尤其重要。
舉例來說,如果您在 iOS 上使用 Firebase ML 和 Cloud Vision API,則應建立單獨的 API 金鑰,專門用於存取 Cloud Vision API。
針對非 Firebase API 使用獨立且受限制的 API 金鑰,您就能視需要輪替或替換金鑰,以及為 API 金鑰新增其他限制,而不會影響 Firebase 服務的使用方式。
查看如何建立 API 專屬金鑰的操作說明
這些操作說明會說明如何為名為 Super Service API 的假 API 建立獨立的受限制 API 金鑰。
步驟 1:將現有的 API 金鑰設為禁止存取 Super Service API
開啟 Google Cloud 控制台的「Credentials」(憑證) 頁面。系統出現提示訊息時,請選取專案。
針對清單中的每個現有 API 金鑰,開啟編輯檢視畫面。
在「API 限制」區段中,選取「限制金鑰」,然後加入清單中,讓 API 金鑰能夠存取的所有 API。請務必「不要」加入要建立個別 API 金鑰的 API (在此範例中為 Super Service API)。
設定 API 金鑰的 API 限制時,您會明確宣告該金鑰有權存取的 API。根據預設,如果「API 限制」部分已選取「不要限制金鑰」,則 API 金鑰可用於存取已啟用專案的任何 API。
現在,現有的 API 金鑰不會授予 Super Service API 的存取權,但您加入 API 限制清單內的任何 API 都能繼續使用每個金鑰。
步驟 2:建立並使用新的 API 金鑰來存取「Super Service API」
返回「Credentials」(憑證) 頁面。請確保您的 Firebase 專案仍處於選取狀態。
依序按一下「建立憑證」>「API 金鑰」。記下新的 API 金鑰,然後按一下「Restrict key」(限制金鑰)。
在 API 限制區段中,選取「Restrict key」(限制金鑰),然後只新增至清單 Super Service API。
如果您刪除某個應用程式正在使用的 API 金鑰,該應用程式的 API 呼叫就會失敗。您可能會收到嘗試使用無效 API 金鑰的報表、電子郵件或錯誤。
API 金鑰一經刪除即無法復原。
對於 Firebase API 金鑰的「API 限制」許可清單中需要哪些 API?
以 Firebase API 金鑰來說,只有需要納入金鑰「API 限制」許可清單的 API,就是要求用戶端在呼叫時一併提供 API 金鑰的 API。請注意,只有少數 Firebase 相關 API 符合這項規定。在專案中已啟用的大多數 Firebase 相關 API 不需要列入金鑰的「API 限制」許可清單中。
請參閱下表,決定要將哪些 Firebase 相關 API 加入 Firebase API 金鑰的「API 限制」許可清單中。別忘了,Firebase API 金鑰僅適用於 Firebase 服務。進一步瞭解如何為特定 API 類型建立個別的受限 API 金鑰。
Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.
您的應用程式用於呼叫 API 的 API 金鑰可能已套用 「API 限制」,且金鑰的許可清單中未包含該 API。