Firebase Security Rules

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

Firebase Security Rules đứng giữa dữ liệu của bạn và người dùng có ý đồ xấu. 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 Firestore và Cloud Storage. Firebase Realtime Database Security Rules tận dụng JSON trong định nghĩa quy tắc, trong khi Cloud Firestore Security Rules và Firebase 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 theo quy tắc cụ thể.

Tìm hiểu thêm về cách thiết lập Security 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 Security 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. Security 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 Vì Security 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 CLI Firebase), 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 làm ảnh hưởng đến dữ liệu và dữ liệu của bạn luôn được bảo vệ.

Cách thức 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ả Security 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 quyền truy cập đọc hoặc ghi. Bạn phải xác định Security Rules cho từng sản phẩm Firebase mà bạn sử dụng trong ứng dụng.

Đối với Cloud Firestore và Cloud Storage, Security 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, Security 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>>
    }
  }
}

Security 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ì Security Rules hãy 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 Security Rules không chồng chéo quá nhiều. Cờ Firebase Security Rules chồng chéo trong các đường dẫn trùng khớp 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 mà 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ề Security Rules ngôn ngữ và hành vi trước khi bắt đầu viết Security Rules.

Lộ trình 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 Tìm hiểu thêm về cách hoạt động của Security Rules và thiết lập một số Security Rules cơ bản
Kiểm thử Firebase Security Rules Sử dụng trình mô phỏng Realtime Database và Cloud 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 các quy tắc đó cho 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 giao diện dòng lệnh Firebase để triển khai các quy tắc của bạn cho hoạt động sản xuất.

Các bước tiếp theo