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