瞭解 Cloud Storage 的 Firebase 安全性規則

一般來說,安全性一直是應用程式最複雜的部分之一 。在大部分應用程式中,開發人員必須建構並執行 會處理驗證 (使用者的身分) 和授權 (使用者可執行的操作)。 驗證與授權設定不易設定、難以正確設定 是產品成功的關鍵

就像 Firebase 驗證功能一樣 使用 Firebase 驗證功能輕鬆驗證 使用者,Cloud Storage 專用的 Firebase 安全性規則可讓您輕鬆授權使用者 並驗證請求Cloud Storage 安全性規則可協助您管理複雜度 您可以指定以路徑為基礎的權限只需幾行程式碼 因此可以撰寫授權規則,將 Cloud Storage 要求限制為 或限制上傳大小

Firebase 即時資料庫有類似的功能 Firebase 即時資料庫安全性規則

驗證

瞭解使用者是開發應用程式的重要環節 Firebase 驗證功能提供簡單易用的安全解決方案 並進行驗證。Cloud Storage 的 Firebase 安全性規則與 Firebase 驗證有關聯 以使用者為基礎的安全機制當使用者透過 Firebase 驗證功能通過驗證時, Cloud Storage 安全性規則中的 request.auth 變數會成為 包含使用者專屬 ID (request.auth.uid) 和所有其他使用者 加入符記 (request.auth.token) 中的資訊。如果使用者不在 已驗證,request.authnull。方便您安全地控管 為每位使用者提供資料存取權詳情請參閱 「Authentication」區段。

授權

辨識使用者只是確保安全性,瞭解他們的背景後 來控管 Cloud Storage 檔案的存取權。

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 分頁。

資料驗證

Firebase 安全性規則也可用於 Cloud Storage 的資料驗證,包括 驗證檔案名稱與路徑,以及 《contentType》和《size》。

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/.*');
    }
  }
}

後續步驟