瞭解 Cloud Storage 的 Firebase 安全性規則

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

Firebase Authentication 類似的方式也可讓您輕鬆驗證 使用者,Firebase Security RulesCloud Storage 可讓您輕鬆授權使用者 並驗證請求Cloud Storage Security Rules 您可以指定以路徑為基礎的權限只需幾行程式碼 寫入授權規則,將 Cloud Storage 要求限制為 或限制上傳大小

Firebase Realtime Database 有類似的功能,稱為 Firebase Realtime Database Security Rules

驗證

瞭解使用者是開發應用程式的重要環節 Firebase Authentication 提供簡單易用、安全無虞且僅限用戶端的解決方案 並進行驗證。Cloud StorageFirebase Security RulesFirebase Authentication 相配 以使用者為基礎的安全機制當使用者透過 Firebase Authentication 進行驗證時, Cloud Storage Security Rules 中的 request.auth 變數會成為 包含使用者專屬 ID (request.auth.uid) 和所有其他使用者 權杖 (request.auth.token) 中的資訊。如果使用者不在 已驗證,request.authnull。方便您安全地控管 為每位使用者提供資料存取權詳情請參閱 「Authentication」區段。

授權

辨識使用者只是確保安全性,瞭解他們的背景後 希望有人能妥善控管「Cloud Storage」中的檔案存取權。

Cloud Storage 可讓您指定每個檔案和個別路徑授權 並決定應用程式中檔案的存取權 舉例來說,預設的 Cloud Storage Security Rules 需要 Firebase Authentication 在 ,對所有檔案執行任何 readwrite 作業:

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

如要編輯這些規則,請在 Firebase 控制台中選取 Firebase 應用程式。 並查看「儲存空間」專區中的 Rules 分頁

資料驗證

Cloud StorageFirebase Security Rules 也可用於資料驗證,包括 驗證檔案名稱與路徑,以及 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/.*');
    }
  }
}

後續步驟