Bắt đầu với Quy tắc bảo mật của Firebase

Quy tắc bảo mật Firebase cung cấp khả năng bảo vệ mạnh mẽ, hoàn toàn có thể tùy chỉnh cho dữ liệu của bạn trong Cloud Firestore, Cơ sở dữ liệu thời gian thực và Lưu trữ đám mây. Bạn có thể dễ dàng bắt đầu với Quy tắc theo các bước trong hướng dẫn này, bảo mật dữ liệu của bạn và bảo vệ ứng dụng của bạn khỏi những người dùng ác ý.

Hiểu ngôn ngữ Quy tắc bảo mật Firebase

Trước khi bạn bắt đầu viết quy tắc, bạn nên dành chút thời gian để xem lại ngôn ngữ Quy tắc bảo mật Firebase cụ thể cho các sản phẩm Firebase mà bạn đang sử dụng. Cơ sở dữ liệu thời gian thực tận dụng cú pháp giống như JavaScript và cấu trúc JSON cho Quy tắc của nó.

Bắt đầu bằng cách tìm hiểu cú pháp cốt lõi của ngôn ngữ Quy tắc bảo mật Firebase .

Thiết lập xác thực

Nếu bạn chưa thực hiện, hãy thêm Xác thực Firebase vào ứng dụng của bạn . Xác thực Firebase hỗ trợ nhiều phương thức xác thực phổ biến và tích hợp với Quy tắc bảo mật Firebase để cung cấp khả năng xác minh toàn diện.

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

Tìm hiểu thêm về Quy tắc bảo mật Firebase và Xác thực Firebase .

Xác định cấu trúc dữ liệu và quy tắc của bạn

Xác định dữ liệu để bảo mật

Cách bạn cấu trúc dữ liệu của mình 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 xem xét tác động của chúng đối với cấu trúc Quy tắc của bạn.

Ví dụ: trong Cơ sở dữ liệu thời gian thực, 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 trường đó 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 quy tắc và dữ liệu của mình, hãy ghi nhớ cách quy tắc xếp tầng hoặc không xếp tầng, tùy thuộc vào sản phẩm của bạn. Với Cơ sở dữ liệu thời gian thực, các quy tắc hoạt động từ trên xuống, với các quy tắc nông hơn sẽ ghi đè các quy tắc sâu hơn. Nếu một quy tắc cấp quyền đọc hoặc ghi tại một đường dẫn cụ thể, thì quy tắc đó cũng cấp quyền truy cập vào tất cả các nút con bên dưới nó. Ngược lại, với Cloud Firestore và Cloud Storage, các quy tắc chỉ áp dụng ở các cấp được chỉ định của hệ thống phân cấp dữ liệu và bạn viết các quy tắc rõ ràng để kiểm soát quyền truy cập vào các cấp khác nhau.

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

Để xem Quy tắc hiện tại của bạn, hãy sử dụng Firebase CLI hoặc bảng điều khiển Firebase. Đảm bảo rằng bạn chỉnh sửa các quy tắc của mình bằng cùng một phương pháp 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 liệu các quy tắc được xác định cục bộ của mình có phản ánh các bản cập nhật mới nhất hay không, thì bảng điều khiển Firebase luôn hiển thị phiên bản mới nhất được triển khai của Quy tắc bảo mật Firebase của bạn.

Để truy cập các quy tắc của bạn từ bảng điều khiển Firebase , hãy chọn dự án của bạn, sau đó trong bảng điều hướng bên trái, nhấp vào Cơ sở dữ liệu thời gian thực . Nhấp vào Quy tắc khi bạn đang ở đúng cơ sở dữ liệu hoặc bộ chứa lưu trữ.

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

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

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

  • Chỉ chủ sở hữu nội dung: Hạn chế quyền truy cập vào nội dung của người dùng.
  • Truy cập hỗn hợp: Hạn chế quyền truy cập ghi của người dùng nhưng cho phép truy cập đọ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 đối với một nhóm hoặc loại người dùng.

Kiểm tra quy tắc của bạn

Nếu đang thiết lập Quy tắc bảo mật Firebase trong bảng điều khiển Firebase, bạn có thể sử dụng Sân chơi quy tắc 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 với Bộ giả lập cục bộ trước khi triển khai các thay đổi của mình vào sản xuất.

Triển khai quy tắc

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. Làm theo các bước được nêu trong Quản lý và triển khai Quy tắc bảo mật Firebase .