簡體   English   中英

當我可以在客戶端代碼中逐字編寫規則時,有人可以向我解釋為什么我們需要 Firebase 安全規則嗎?

[英]Can someone please explain to me why we need Firebase security rules when I can literally write rules in my client code?

我不知道我的問題是否在我應該在堆棧溢出時提出的問題附近,但如果是這樣......

當我可以將 go 寫入我的客戶端代碼並說:

db.collection("users").get().then(res=> {
  res.docs.map(user => {
     if (user.data().uid !== auth.currentUser.uid) {
        // do something I'm about to put in this code snippet
     }
  })
})

比如,有人可以直接進入我的客戶端代碼並編寫他們想要的任何內容,這就是為什么我們需要在 Firebase 控制台中的安全規則中編寫代碼?

當我們可以簡單地在客戶端執行邏輯時,為什么我們需要 Firebase 函數也讓我感到困惑,盡管我可以理解有些事情需要在服務器端完成。

但是對於這個問題的 scope,有人可以清楚地向我解釋為什么我們不能只在代碼中編寫安全性來使事情正常工作嗎?

希望我對信息很徹底。 謝謝。

Firebase 還有一個REST API允許任何人直接向您的 Z035489FF8D03241741943E4 服務中的任何 8 個代碼提出請求。 所以即使逆向工程和修改代碼是不可能的,還有 REST API。

您不得信任客戶端應用程序(尤其是 web 應用程序),並始終驗證傳入數據並確保只有授權用戶才能修改它。


他們如何獲得對我的數據庫進行 API 調用所需的信息? 他們不需要鑰匙嗎?

如果您檢查 Firebase 配置,它包含一個 API 密鑰,用於識別您的 Firebase 項目,並且不存在可見的風險。

現在互聯網上的任何人都知道您的數據庫地址,如果您沒有設置任何安全規則,他們可以將其與 REST API 一起使用。

暫無
暫無

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

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