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ý xác thực (người dùng là ai) và ủy quyền (người dùng có thể làm gì). Xác thực và ủy quyền khó thiết lập, 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 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 cho người dùng và xác thực yêu cầu. Quy tắc bảo mật lưu trữ đám mây quản lý sự 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ỉ trong 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 Lưu trữ đám mây đố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 ứng dụng và Xác thực Firebase cung cấp giải pháp xác thực chỉ phía máy khách, dễ sử dụng, an toàn. Quy tắc bảo mật Firebase 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 không được xác thực, request.auth
là null
. Điều này cho phép bạn kiểm soát truy cập dữ liệu một cách an toàn trên cơ sở mỗi 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 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 một cách để kiểm soát quyền truy cập của họ vào các tệp trong Cloud Storage.
Lưu trữ đám mây 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 các 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 Lưu trữ.
Xác nhận dữ liệu
Quy tắc bảo mật Firebase cho Lưu trữ đám mây 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 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/.*'); } } }
Bước tiếp theo
Bắt đầu lập kế hoạch phát triển quy tắc cho bộ chứa Lưu trữ đám mây của bạn.
Tìm hiểu thêm về bảo mật dữ liệu của bạn bằng các quy tắc bảo mật.