傳統上,安全性是應用程式開發中最複雜的部分之一。在大多數應用程式中,開發人員必須建構及執行伺服器,處理驗證 (使用者身分) 和授權 (使用者可執行的動作)。驗證和授權設定不易,更難確保正確無誤,但對產品的成功至關重要。
與 Firebase Authentication 讓您輕鬆驗證使用者身分的方式類似,Cloud Storage 的 Firebase Security Rules 可讓您輕鬆授權使用者及驗證要求。Cloud Storage Security Rules 可讓您指定路徑型權限,藉此管理複雜度。您只需幾行程式碼,即可編寫授權規則,限制對特定使用者發出的 Cloud Storage 要求,或限制上傳大小。
Firebase Realtime Database 也有類似功能,稱為「Firebase Realtime Database Security Rules」
驗證
瞭解使用者身分是建構應用程式的重要環節,而 Firebase Authentication 提供簡單易用、安全且僅限於用戶端的驗證解決方案。Firebase Security Rules,Cloud Storage與使用者安全息息相關。Firebase Authentication
使用者透過 Firebase Authentication 驗證身分後,Cloud Storage Security Rules 中的 request.auth
變數會成為物件,內含使用者的專屬 ID (request.auth.uid
) 和權杖中的所有其他使用者資訊 (request.auth.token
)。如果使用者未通過驗證,request.auth
會是 null
。這樣一來,您就能以使用者為單位,安全地控管資料存取權。詳情請參閱「驗證」一節。
授權
辨識使用者只是安全防護的一環,瞭解共用對象後,您需要控管他們在 Cloud Storage 中存取檔案的權限。
Cloud Storage 可讓您指定每個檔案和路徑的授權規則,這些規則會存放在我們的伺服器上,並決定應用程式中檔案的存取權。舉例來說,預設的 Cloud Storage Security Rules 會要求 Firebase Authentication,才能對所有檔案執行任何 read
或 write
作業:
service firebase.storage { match /b/{bucket}/o { match /someFolder/{fileName} { allow read, write: if request.auth != null; } } }
如要編輯這些規則,請在 Firebase 控制台中選取 Firebase 應用程式,然後查看「儲存空間」部分的「規則」Rules
分頁。
資料驗證
Firebase Security Rules 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/.*'); } } }