我見過類似的問題,例如如何解決 API 密鑰在請求 URL 問題上可見?,但我認為它不適用于我的用例。
我正在為我的應用程式(React 應用程式,由 NestJS 后端提供服務)使用 Firebase 身份驗證,并注意到一件事,它通過請求 URL 公開了 Google Cloud API 密鑰。目前的認證流程是:
- 使用 OAuth2,前端使用 Firebase SDK 呼叫 Google Identity Platform 以檢索登錄資訊(顯示名稱、ID 令牌等)
- 前端呼叫 NestJS API 以使用 Firebase Admin SDK 驗證登錄資訊并創建僅 HTTP cookie 以保留身份驗證狀態。
據我所知,React App 需要訪問 API 密鑰才能實作 Firebase。沒有辦法繞過這個要求。即使密鑰隱藏在.env檔案中,API 密鑰仍會通過網路選項卡顯示。在某些情況下,假設我忘記處理 a signInWithRedirect()(或任何其他 Firebase 函式)的例外,則會引發錯誤 ( Uncaught Promise: requestUrl/apiKey="My Key") 顯示在控制臺中,因此情況更糟。
我不確定我是否對整個實作和身份驗證流程有誤解。如果是,那么請糾正我。如果沒有,請告知如何解決此問題。
uj5u.com熱心網友回復:
它出現在 Firebase 的情況下,公開 API 密鑰很好。然而,這僅僅是因為 Firebase 的作業方式,而不是因為公開 API 密鑰通常是安全的。可以在此處找到更詳細的討論:向公眾公開 Firebase apiKey 是否安全?
我使用的是Google Identity Platform,而不是 Firebase,但 Google Identity Platform 也使用 Firebase 和 Firebase Admin SDK,所以我相信這是適用的。
Firebase 官方說明視頻中也提到了這件事。感謝用戶usr28765526提到這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/379277.html
標籤:反应 安全 谷歌云平台 Firebase 身份验证 api-key
上一篇:log4j-vulnerability-log4j1.2.17是否易受攻擊(無法在源代碼中找到任何jndi代碼)?
