簡體   English   中英

為什么firebase-admin不能在瀏覽器中運行?

[英]Why can firebase-admin not be run in the browser?

有幾個問題要求在瀏覽器中運行 firebase-admin package,例如

但是,給出的問題和答案都沒有正確區分“瀏覽器與服務器/后端”的區別和“最終用戶與特權”的區別。 一個常見的主題似乎是警告不要為最終用戶打開 firebase-admin,這顯然是一個安全風險,但他們沒有解釋為什么特權用戶無法從瀏覽器中運行的代碼訪問特權 Firebase 功能,只能從后端/ 服務器。

因此,假設用戶有足夠的權限(例如,firebase 項目所有者)並且願意執行將這些權限轉移到在瀏覽器中運行的代碼所需的任何身份驗證——有什么理由不這樣做呢? 它不會工作嗎? 是否存在安全風險? 是否只是因為很大一部分開發人員會犯錯誤而氣餒?

正如您所說,我認為您對“特權用戶”是什么有誤解。

firebase-admin 使用服務帳戶初始化。 這與 Firebase Auth 用戶帳戶不同。 服務帳戶是屬於雲項目的實體,被授予對該項目中某些資源的特權訪問權限。 這就是 fireabse-admin 的運作方式——您使用服務帳戶進行初始化並獲得該特權訪問權限。 firebase-admin 不使用用戶帳戶進行初始化。

您永遠不想向 web 瀏覽器公開服務帳戶憑據。 這是一個巨大的安全風險。 由於 firebase-admin 需要服務帳戶,因此您永遠不想在瀏覽器中使用 firebase-admin,因為它會被視為公共信息。

關於此事的文檔的全部要點是讓您編寫代碼以將 Firebase Auth 用戶令牌發送到您的后端,您可以在后端安全地驗證它們並決定該最終用戶是否應該能夠使用 firebase-admin 執行特權操作。 這個方案確實沒有安全的解決方法——這是你應該遵循的模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM