Theo truyền thống, bảo mật là một trong những phần phức tạp nhất của quá trình phát triển ứng dụng. Trong hầu hết các ứng dụng, nhà phát triển phải xây dựng và chạy một máy chủ xử lý quá trình xác thực (người dùng là ai) và uỷ quyền (người dùng có thể làm gì). Việc thiết lập quá trình xác thực và uỷ quyền rất khó, khó thực hiện đúng và rất quan trọng đối với sự thành công của sản phẩm.
Tương tự như cách Firebase Authentication giúp bạn dễ dàng xác thực người dùng, Firebase Security Rules cho Cloud Storage giúp bạn dễ dàng uỷ quyền cho người dùng và xác thực các yêu cầu. Cloud Storage Security Rules quản lý sự phức tạp cho bạn bằng cách cho phép bạn chỉ định quyền dựa trên đường dẫn. Chỉ trong vài dòng mã, bạn có thể viết các quy tắc uỷ quyền để hạn chế các yêu cầu Cloud Storage đối với một người dùng nhất định hoặc giới hạn kích thước của một lượt tải lên.
Firebase Realtime Database có một tính năng tương tự, được gọi là Firebase Realtime Database Security Rules
Xác thực
Biết người dùng là ai là một phần quan trọng trong việc xây dựng ứng dụng và
Firebase Authentication cung cấp một giải pháp xác thực dễ sử dụng, an toàn và chỉ dành cho phía máy khách. Firebase Security Rules cho Cloud Storage liên kết với Firebase Authentication
để bảo mật dựa trên người dùng. Khi người dùng được xác thực bằng Firebase Authentication,
biến request.auth trong Cloud Storage Security Rules sẽ trở thành một đối tượng
chứa mã nhận dạng duy nhất của người dùng (request.auth.uid) và tất cả thông tin khác của người dùng
trong mã thông báo (request.auth.token). Khi người dùng không
được xác thực, request.auth sẽ là null. Điều này cho phép bạn kiểm soát quyền truy cập dữ liệu một cách an toàn dựa trên từng người dùng. Bạn có thể tìm hiểu thêm trong phần
Xác thực.
Ủy quyền
Xác định người dùng chỉ là một phần của bảo mật. Sau khi biết người dùng là ai, bạn cần có cách để kiểm soát quyền truy cập của họ vào các tệp trong Cloud Storage.
Cloud Storage cho phép bạn chỉ định các quy tắc uỷ quyền cho từng tệp và từng đường dẫn nằm trên máy chủ của chúng tôi và xác định quyền truy cập vào các tệp trong ứng dụng của bạn.
Ví dụ: Cloud Storage Security Rules mặc định yêu cầu Firebase Authentication để
thực hiện mọi thao tác read hoặc write trên tất cả các tệp:
service firebase.storage { match /b/{bucket}/o { match /someFolder/{fileName} { allow read, write: if request.auth != null; } } }
Bạn có thể chỉnh sửa các quy tắc này bằng cách chọn một ứng dụng Firebase trong Firebase bảng điều khiển
và xem thẻ Rules của phần Storage (Bộ nhớ).
Xác thực dữ liệu
Firebase Security Rules cho Cloud Storage cũng có thể được dùng để xác thực dữ liệu, bao gồm
xác thực tên và đường dẫn tệp cũng như các thuộc tính siêu dữ liệu của tệp như
contentType và 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/.*'); } } }
Các bước tiếp theo
Bắt đầu lên kế hoạch phát triển quy tắc cho các vùng chứa Cloud Storage.
Tìm hiểu thêm về cách bảo mật dữ liệu bằng quy tắc bảo mật.