Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

了解 Cloud Storage 的 Firebase 安全規則

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

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

與 Firebase 身份驗證如何讓您輕鬆對用戶進行身份驗證類似,Firebase Cloud Storage 安全規則讓您可以輕鬆授權用戶和驗證請求。雲存儲安全規則允許您指定基於路徑的權限,從而為您管理複雜性。只需幾行代碼,您就可以編寫將 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選項卡來編輯這些規則。

數據驗證

Cloud Storage 的 Firebase 安全規則也可用於數據驗證,包括驗證文件名和路徑以及文件元數據屬性,例如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/.*');
    }
  }
}

下一步

  • 開始為您的 Cloud Storage 存儲分區規劃規則開發。

  • 詳細了解如何使用安全規則保護您的數據