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

Các quy tắc bảo mật của Firebase cung cấp khả năng bảo vệ mạnh mẽ và 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 với Rules bằng cách làm theo các bước trong hướng dẫn này, bảo mật dữ liệu và bảo vệ ứng dụng của bạn khỏi người dùng độc hại.

Tìm hiểu ngôn ngữ của Quy tắc bảo mật của Firebase

Trước khi bắt đầu viết quy tắc, bạn nên dành thời gian xem xét ngôn ngữ cụ thể của Quy tắc bảo mật của Firebase 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 JavaScript và cấu trúc JSON cho Rules.

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 của Firebase.

Thiết lập Authentication

Nếu chưa thực hiện, hãy thêm Firebase Authentication vào ứng dụng của bạn. Firebase Authentication 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 của Firebase để cung cấp các 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 tuỳ 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 của Firebase và Firebase Authentication.

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

Xác định dữ liệu cho mục đích bảo mật

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. Khi xác định cấu trúc dữ liệu, hãy cân nhắc những tác động mà cấu trúc đó có thể gây ra cho cấu trúc Rules của bạn.

Ví dụ: trong Realtime Database, bạn có thể muốn thê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à 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 ý đến cách các quy tắc xếp tầng hoặc không xếp tầng, tuỳ thuộc vào sản phẩm của bạn. Với Realtime Database, các quy tắc hoạt động từ trên xuống dưới, trong đó 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 đường dẫn đó. Ngược lại, với Cloud FirestoreCloud Storage, các quy tắc chỉ áp dụng ở các cấp cụ thể 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 vào quy tắc

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

Để truy cập vào 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 đó nhấp vào Cơ sở dữ liệu theo thời gian thực trong bảng điều hướng bên trái. Nhấp vào biểu tượng Rules sau khi bạn truy cập vào đúng cơ sở dữ liệu hoặc vùng lưu trữ.

Để 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 về Rules, hãy thử triển khai Rules để giải quyết một số trường hợp sử dụng cơ bản, bao gồm cả những 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 theo người dùng.
  • Quyền truy cập hỗn hợp: Hạn chế quyền ghi theo 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 đối với một nhóm hoặc loại người dùng.

Kiểm tra quy tắc

Nếu đang thiết lập Quy tắc bảo mật của Firebase trong bảng điều khiển Firebase, bạn có thể sử dụng Firebase Rules Playground để nhanh chóng xác thực hành vi. Tuy nhiên, bạn nên kiểm thử kỹ lưỡng hơn bằng Local Emulator Suite trước khi triển khai các thay đổi cho phiên bản phát hành công khai.

Triển khai quy tắc

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