Firebase Security Rules

Hãy sử dụng Firebase Security Rules (Quy tắc bảo mật của Firebase) linh hoạt và có thể mở rộng của chúng tôi để bảo mật dữ liệu 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 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 và 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 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 để phù hợp với 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 Security Rules cho các sản phẩm cụ thể của Firebase mà bạn sử dụng trong ứng dụng và cách hoạt động của Security Rules khác nhau giữa các sản phẩm của Firebase.

Bắt đầu

Các tính 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 để cho phép truy cập.
Độ chi tiết Các quy tắc có thể rộng hoặc hẹp tuỳ theo nhu cầu của bạn.
Bảo mật độc lập Security Rules được xác định bên ngoài ứng dụng (trong bảng điều khiển Firebase hoặc Firebase CLI), nên máy khách 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ác quy tắc này hoạt động như thế nào?

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ó thành phần so khớp đường dẫn và 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 Security Rules cho từng sản phẩm của Firebase mà bạn sử dụng trong ứng dụng.

Đối với Cloud FirestoreCloud Storage, Security Rules 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, 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 được so khớp đều cấp quyền truy cập, thì Security Rules sẽ cấp quyền truy cập vào dữ liệu tại đường dẫn đó. Vì vậy, nếu một quy tắc rộng 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. Firebase Security Rules gắn cờ các trường hợp chồng chéo trong các đường dẫn được so 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 bạn đặt có thể rất cơ bản hoặc vô cùng phức tạp. Tìm hiểu thêm về Security Rules ngôn ngữhành vi trước khi bạn bắt đầu viết Security Rules.

Quy trình triển khai

Tích hợp 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 Security Rules hoạt độngthiế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 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 các quy tắc đó vào môi trường thực tế.
Triển khai Firebase Security Rules Sử dụng bảng điều khiển Firebase hoặc Firebase CLI để triển khai các quy tắc vào môi trường thực tế.

Các bước tiếp theo