Bắt đầu sử dụng Quy tắc bảo mật của Firebase

Firebase Security Rules cung cấp biện pháp bảo vệ mạnh mẽ, hoàn toàn có thể tuỳ chỉnh cho dữ liệu của bạn trong Cloud Firestore, Realtime DatabaseCloud Storage. Bạn có thể dễ dàng bắt đầu bằng Rules làm theo các bước trong hướng dẫn này, giúp bảo mật và bảo vệ ứng dụng của bạn khỏi những người dùng độc hại.

Hiểu ngôn ngữ Firebase Security Rules

Trước khi bắt đầu viết quy tắc, bạn nên dành thời gian để xem lại ngôn ngữ Firebase Security Rules cụ thể cho các sản phẩm Firebase mà bạn đang sử dụng. Realtime Database tận dụng cú pháp giống như JavaScript và cấu trúc JSON cho Rules. Ngoài ra, Cloud FirestoreCloud Storage tận dụng một tập mẹ của Ngôn ngữ diễn đạt thông thường (CEL) dựa trên matchallow các câu lệnh đặt điều kiện truy cập tại một đường dẫn đã xác định.

Tìm hiểu thêm về ngôn ngữ của Firebase Security Rules.

Thiết lập Authentication

Nếu bạn chưa xác định người dùng, hãy xác định người dùng bằng Firebase Authentication. Firebase Authentication hỗ trợ nhiều phương pháp xác thực phổ biến và tích hợp với Firebase Security Rules để cung cấp chức năng xác minh toàn diện.

Bạn có thể thiết lập thông tin xác thực bổ sung, tuỳ chỉnh cho ứng dụng của mình.

Tìm hiểu thêm về Firebase Security RulesFirebase Authentication.

Xác định cấu trúc dữ liệu và quy tắc

Cách bạn cấu trúc dữ liệu có thể ảnh hưởng đến cách bạn cấu trúc và triển khai các quy tắc của mình. Khi bạn xác định cấu trúc dữ liệu của mình, hãy cân nhắc ảnh hưởng của chúng đối với cấu trúc Rules của bạn.

Ví dụ: trong Cloud Firestore, bạn có thể muốn bao gồm một trường biểu thị vai trò cụ thể cho từng người dùng. Sau đó, các quy tắc của bạn có thể đọc và sử dụng trường đó để cấp quyền truy cập dựa trên vai trò.

Khi bạn xác định cấu trúc dữ liệu và quy tắc, hãy lưu ý rằng nếu bất kỳ quy tắc nào cấp quyền truy cập vào một tập dữ liệu, thì Firebase Security Rules sẽ cấp quyền truy cập vào tập dữ liệu đó. Ngang bằng nói cách khác, bạn không thể tinh chỉnh quyền truy cập tại đường dẫn phụ nếu bạn đã cấp quyền truy cập tại cấp cao hơn trong hệ thống phân cấp dữ liệu.

Truy cập vào các quy tắc của bạn

Để xem Rules hiện có, hãy sử dụng CLI Firebase hoặc Bảng điều khiển Firebase. Hãy nhớ chỉnh sửa các quy tắc của bạn bằng cùng một phương thức, một cách nhất quán để tránh ghi đè nhầm các bản cập nhật. Nếu bạn không chắc chắn cho dù các quy tắc được xác định cục bộ có phản ánh những cập nhật gần đây nhất, Firebase bảng điều khiển luôn cho thấy phiên bản được triển khai gần đây nhất của Firebase Security Rules.

Để truy cập vào các quy tắc trong bảng điều khiển của Firebase, hãy chọn dự án, sau đó chuyển đến Realtime Database, Cloud Firestore hoặc Bộ nhớ. Nhấp vào Quy tắc sau khi bạn truy cập vào đúng cơ sở dữ liệu hoặc bộ nhớ bộ chứa.

Để truy cập vào các quy tắc của bạn từ CLI Firebase, hãy chuyển đến tệp quy tắc được ghi chú trong tệp firebase.json.

Viết các quy tắc cơ bản

Khi bạn đang phát triển ứng dụng và tìm hiểu Rules, hãy thử triển khai một số Quy tắc bảo mật cơ bản, bao gồm các trường hợp sử dụng sau:

  • Chỉ chủ sở hữu nội dung: Hạn chế quyền truy cập vào nội dung theo người dùng.
  • Quyền truy cập hỗn hợp: Hạn chế quyền ghi của người dùng, nhưng cho phép quyền đọc công khai.
  • Quyền truy cập dựa trên thuộc tính: Hạn chế quyền truy cập vào một nhóm hoặc loại người dùng.

Kiểm tra quy tắc

Để xác thực đầy đủ hành vi của ứng dụng và xác minh Firebase Security Rules
của bạn cấu hình, hãy sử dụng Trình mô phỏng Firebase để chạy và tự động hoá đơn vị thử nghiệm trong môi trường cục bộ.

Nếu đang thiết lập Firebase Security Rules trong bảng điều khiển Firebase, bạn có thể sử dụng Trình mô phỏng quy tắc của Firebase để nhanh chóng xác thực hành vi. Tuy nhiên, chúng tôi khuyên bạn nên thử nghiệm kỹ lưỡng hơn bằng Trình mô phỏng Firebase trước khi triển khai các thay đổi đối với giai đoạn phát hành chính thức.

Triển khai quy tắc

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 sang phát hành công khai. Làm theo các bước được nêu trong Quản lý và triển khai Firebase Security Rules.