Firebase Security Rules

Sử dụng Quy tắc bảo mật linh hoạt và có thể mở rộng của Firebase để bảo mật dữ liệu của bạn trong Cloud Firestore, Firebase Realtime DatabaseCloud Storage.

Firebase Security Rules đứng giữa dữ liệu của bạn và người dùng độc hại. Bạn có thể viết các quy tắc đơn giản hoặc phức tạp để bảo vệ dữ liệu của ứng dụng ở mức độ chi tiết mà ứng dụng cụ thể của bạn yêu cầu.

Firebase Security Rules tận dụng các ngôn ngữ cấu hình linh hoạt, có thể mở rộng để xác định dữ liệu mà người dùng có thể truy cập cho Realtime Database, Cloud FirestoreCloud Storage. Firebase Realtime Database Security Rules tận dụng JSON trong các định nghĩa quy tắc, trong khi Cloud Firestore Security RulesFirebase Security Rules cho Cloud Storage tận dụng một ngôn ngữ duy nhất được xây dựng để đáp ứng các cấu trúc phức tạp hơn dành riêng cho quy tắc.

Tìm hiểu thêm về cách thiết lập Rules cho các sản phẩm cụ thể của Firebase mà bạn sử dụng trong ứng dụng, cũng như cách hành vi của Rules khác nhau giữa các sản phẩm của Firebase.

Bắt đầu

Các chức năng chính

Tính linh hoạt Viết các quy tắc tuỳ chỉnh phù hợp với cấu trúc và hành vi của ứng dụng. Rules sử dụng các ngôn ngữ cho phép bạn tận dụng dữ liệu của riêng mình để uỷ quyền truy cập.
Độ chi tiết Bạn có thể đặt quy tắc rộng hoặc hẹp tuỳ theo nhu cầu.
Bảo mật độc lập Rules được xác định bên ngoài ứng dụng của bạn (trong bảng điều khiển Firebase hoặc Firebase CLI), nên các ứng dụng không chịu trách nhiệm thực thi bảo mật, lỗi không ảnh hưởng đến dữ liệu và dữ liệu của bạn luôn được bảo vệ.

Cách hoạt động

Firebase Security Rules hoạt động bằng cách so khớp một mẫu với các đường dẫn cơ sở dữ liệu, sau đó áp dụng các điều kiện tuỳ chỉnh để cho phép truy cập vào dữ liệu tại các đường dẫn đó. Tất cả Rules trên các sản phẩm của Firebase đều có một thành phần so khớp đường dẫn và một câu lệnh có điều kiện cho phép truy cập đọc hoặc ghi. Bạn phải xác định Rules cho từng sản phẩm Firebase mà bạn sử dụng trong ứng dụng.

Đối với Cloud FirestoreCloud Storage, Rules hãy sử dụng cú pháp sau:

service <<name>> {
  // Match the resource path.
  match <<path>> {
    // Allow the request if the following conditions are true.
    allow <<methods>> : if <<condition>>
  }
}

Đối với Realtime Database, Rules dựa trên JSON sử dụng cú pháp sau:

{
  "rules": {
    "<<path>>": {
    // Allow the request if the condition for each method is true.
      ".read": <<condition>>,
      ".write": <<condition>>
    }
  }
}

Rules được áp dụng dưới dạng câu lệnh OR, chứ không phải câu lệnh AND. Do đó, nếu nhiều quy tắc khớp với một đường dẫn và bất kỳ điều kiện nào khớp đều cấp quyền truy cập, thì Rules cấp quyền truy cập vào dữ liệu tại đường dẫn đó. Do đó, nếu một quy tắc chung cấp quyền truy cập vào dữ liệu, thì bạn không thể hạn chế bằng một quy tắc cụ thể hơn. Tuy nhiên, bạn có thể tránh vấn đề này bằng cách đảm bảo Rules không trùng lặp quá nhiều. Cờ Firebase Security Rules trùng lặp trong các đường dẫn trùng khớp của bạn dưới dạng cảnh báo của trình biên dịch.

Firebase Security Rules cũng có thể tận dụng Authentication để cấp quyền dựa trên người dùng và các điều kiện bạn đặt có thể rất cơ bản hoặc cực kỳ phức tạp. Tìm hiểu thêm về Rules ngôn ngữhành vi trước khi bạn bắt đầu viết Rules.

Đường dẫn triển khai

Tích hợp các SDK sản phẩm Thiết lập Cloud Firestore, Cloud Storage hoặc Realtime Database cho ứng dụng của bạn.
Viết Firebase Security Rules của bạn Tìm hiểu thêm về cách hoạt động của Rulesthiết lập một số Rules cơ bản
Kiểm thử Firebase Security Rules Sử dụng trình mô phỏng Realtime DatabaseCloud Firestore để kiểm thử hành vi của ứng dụng và xác thực các quy tắc trước khi triển khai chúng cho phiên bản phát hành công khai.
Triển khai Firebase Security Rules Sử dụng bảng điều khiển Firebase hoặc CLI Firebase để triển khai các quy tắc của bạn cho bản phát hành công khai.

Các bước tiếp theo