获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Hiểu các quy tắc bảo mật của Firebase cho bộ nhớ đám mây

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 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.authnull . Đ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ư 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/.*');
    }
  }
}

Bước tiếp theo