0

我目前正在構建一個Web應用程序,並且我考慮使用Firebase身份驗證及其數據庫。我擔心的是,如果用戶ID在瀏覽器上,它是否會造成任何安全問題?Firebase uid在瀏覽器上使用/顯示是否安全?

例如,假設我的用戶ID是12345,並且我想在某個頁面上顯示關於用戶12345的一些信息。爲了移動到某個頁面,我可以看到用戶的信息,我點擊某個元素(如按鈕),然後進入頁面。 (例如:https://localhost:9876 =>https://localhost:9876/12345)在這種情況下,用戶標識是可見的,但我不確定這是否可靠。

謝謝。


編輯:我只注意到安全規則應該被用來感謝Eric的評論。但是,我不能100%確定該規則是否也可用於身份驗證對象。例如,auth對象用於獲取用戶標識,但使用用戶標識,是否有人可以獲取存儲在auth對象中的用戶的電子郵件地址?例如,在上例中,某人可能會使用用戶標識12345獲取用戶12345的電子郵件地址。

+0

您必須執行安全規則以確保安全。 –

+0

我根據您的評論添加了一些問題。謝謝。 – James

回答

0

確保用戶相關資源安全的正確方法是通過Firebase ID令牌。數據庫/存儲規則已經依賴於這種機制。你不能只依靠正在提供的正確用戶ID。這不提供安全。相反,在返回受限資源之前,您應該檢查驗證ID令牌並僅信任其包含UID的內容。僅供參考:Firebase Admin SDK已經提供API來驗證ID令牌。 通常的方式傳遞的ID令牌(如果你不使用實時數據庫),如下:

  1. 單頁的應用程序:您可以撥打getIdToken(),然後通過最新的ID令牌中URL查詢參數,發佈正文或標題,因爲您將XHR請求發送到您的服務器。
  2. 傳統網站:您必須設置會話cookie。最簡單的方法是將ID令牌設置爲會話cookie,並在過期時保持更新。在您的後端,您將在返回用戶特定資源之前對其進行驗證。
+0

看起來我可以使用[this](https://firebase.google.com/docs/auth/web/start#set_an_authentication_state_observer_and_get_user_data)和[this](https://firebase.google.com/docs/auth/) web/start#sign_in_existing_users)如果我想要一個更簡單的方法。而對於後端,我可能會考慮[this](https://firebase.google.com/docs/auth/admin/verify-id-tokens)。謝謝你的建議! – James