Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

了解Cloud Storage的Firebase安全規則

傳統上,安全性一直是應用程序開發中最複雜的部分之一。在大多數應用程序中,開發人員必須構建並運行用於處理身份驗證(用戶身份)和授權(用戶可以做什麼)的服務器。身份驗證和授權很難設置,很難正確設置,並且對於產品的成功至關重要。

與Firebase身份驗證使您可以輕鬆地對用戶進行身份驗證的方式類似,Cloud Storage的Firebase安全規則使您可以輕鬆地授權用戶和驗證請求。存儲安全規則允許您指定基於路徑的權限,從而為您管理複雜性。在僅幾行代碼中,您可以編寫授權規則,以將Cloud Storage請求限制為特定用戶或限制上傳大小。

Firebase實時數據庫具有類似的功能,稱為Firebase實時數據庫規則

認證方式

知道誰是用戶是構建應用程序的重要部分,並且Firebase身份驗證提供了一種易於使用,安全,僅客戶端的身份驗證解決方案。 Cloud Storage的Firebase安全規則與基於用戶的安全性的Firebase身份驗證相關。通過Firebase身份驗證對用戶進行身份驗證後,存儲安全規則中的request.auth變量將成為一個對象,該對象包含用戶的唯一ID( request.auth.uid )和令牌中的所有其他用戶信息( request.auth.token )。如果用戶未通過身份驗證,則request.authnull 。這使您可以安全地控制每個用戶的數據訪問。您可以在“ 用戶安全性”部分中了解更多信息。

授權書

識別用戶只是安全性的一部分。一旦知道了他們是誰,便需要一種方法來控制他們對Cloud Storage中文件的訪問。

通過Cloud Storage,您可以指定我們服務器上的每個文件和每個路徑授權規則,並確定對應用程序中文件的訪問權限。例如,默認存儲安全規則要求Firebase身份驗證才能對所有文件執行任何readwrite操作:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

您可以通過在Firebase控制台中選擇Firebase應用並查看Rules存儲”部分的Rules選項卡來編輯這些規則。

資料驗證

Firebase Cloud Storage安全規則還可以用於數據驗證,包括驗證文件名和路徑以及文件元數據屬性,例如contentTypesize

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

既然您已經了解了存儲安全規則可以做什麼的基礎知識, 那就開始吧!