Quy tắc bảo mật của Firebase

Sử dụng Quy tắc bảo mật Firebase linh hoạt, có thể mở rộng của chúng tôi để bảo mật dữ liệu của bạn trong Cloud Firestore, Cơ sở dữ liệu thời gian thực Firebase và Cloud Storage.

Quy tắc bảo mật Firebase đứ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 ứng dụng của mình ở mức độ chi tiết mà ứng dụng cụ thể của bạn yêu cầu.

Quy tắc bảo mật Firebase 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 nào người dùng của bạn có thể truy cập cho Cơ sở dữ liệu thời gian thực, Cloud Firestore và Cloud Storage. Quy tắc bảo mật cơ sở dữ liệu thời gian thực Firebase tận dụng JSON trong định nghĩa quy tắc, trong khi Quy tắc bảo mật Cloud Firestore và Quy tắc bảo mật Firebase cho Lưu trữ đám mây 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 dành riêng cho quy tắc phức tạp hơn.

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

Khả năng chính

Uyển chuyển Viết các quy tắc tùy chỉnh phù hợp với cấu trúc và hành vi của ứng dụng của bạn. Các quy tắc sử dụng ngôn ngữ cho phép bạn tận dụng dữ liệu của riêng mình để cấp quyền truy cập.
Độ chi tiết Quy tắc của bạn có thể rộng hoặc hẹp tùy theo nhu cầu của bạn.
An ninh độc lập Vì Quy tắc đượ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 khách hàng không chịu trách nhiệm thực thi bảo mật, lỗi không xâm phạm dữ liệu và dữ liệu của bạn luôn được bảo vệ.

Họ làm việc như thế nào?

Quy tắc bảo mật Firebase hoạt động bằng cách khớp mẫu với các đường dẫn cơ sở dữ liệu, sau đó áp dụng các điều kiện tùy chỉnh để cho phép truy cập dữ liệu tại các đường dẫn đó. Tất cả Quy tắc trên các sản phẩm Firebase đều có thành phần khớp đường dẫn và 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 Quy tắc cho từng sản phẩm Firebase mà bạn sử dụng trong ứng dụng của mình.

Đối với Cloud Firestore và Cloud Storage, Quy tắc 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 Cơ sở dữ liệu thời gian thực, Quy tắc 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>>
    }
  }
}

Các quy tắc đượ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 trùng khớp nào đều cấp quyền truy cập thì Quy tắc sẽ 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 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 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 Quy tắc của bạn không trùng lặp quá nhiều. Cờ Quy tắc bảo mật Firebase chồng chéo trong các đường dẫn phù hợp của bạn dưới dạng cảnh báo của trình biên dịch.

Quy tắc bảo mật Firebase cũng có thể tận dụng Xác thực để 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ề ngôn ngữhành vi của Quy tắc trước khi bạn bắt đầu viết Quy tắc.

Lộ trình thực hiện

Tích hợp SDK sản phẩm Thiết lập Cloud Firestore , Cloud Storage hoặc Cơ sở dữ liệu thời gian thực cho ứng dụng của bạn.
Viết quy tắc bảo mật Firebase của bạn Tìm hiểu thêm về cách hoạt động của Quy tắcthiết lập một số Quy tắc cơ bản
Kiểm tra quy tắc bảo mật Firebase của bạn Sử dụng cơ sở dữ liệu thời gian thực và trình mô phỏng Cloud Firestore để kiểm tra hành vi của ứng dụng và xác thực các quy tắc của bạn trước khi triển khai chúng vào sản xuất.
Triển khai Quy tắc bảo mật Firebase của bạn Sử dụng bảng điều khiển Firebase hoặc Firebase CLI để triển khai các quy tắc của bạn vào sản xuất.

Bước tiếp theo