Firebase Security Rules cung cấp khả năng bảo vệ mạnh mẽ và hoàn toàn tuỳ chỉnh cho dữ liệu của bạn trong Cloud Firestore, Realtime Database, và Cloud Storage. Bạn có thể dễ dàng bắt đầu sử dụng Security Rules 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ữ Firebase Security Rules
Trước khi bắt đầu viết quy tắc, bạn nên dành chút thời gian để xem xét
ngôn ngữ cụ thể Firebase Security Rules cho các sản phẩm của 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
Security Rules. Ngoài ra, Cloud Firestore và Cloud Storage tận dụng một tập hợp con
của Ngôn ngữ diễn đạt thông thường (CEL) dựa vào các câu lệnh match và allow
để đặ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ữ Firebase Security Rules.
Thiết lập Authentication
Nếu bạn chưa làm việc này, hãy xác định người dùng bằng Firebase Authentication. Firebase Authentication hỗ trợ nhiều phương thức xác thực phổ biến và tích hợp với Firebase Security Rules để cung cấp các 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 bổ sung và tuỳ chỉnh cho ứng dụng của mình.
Tìm hiểu thêm về Firebase Security Rules và Firebase 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 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à chúng có thể gây ra đối với cấu trúc Security Rules.
Ví dụ: trong Cloud Firestore, 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ó thể đọc trường đó và sử dụng trường đó để cấp quyền truy cập dựa trên vai trò.
Khi xác định kiến 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 đó. Nói cách khác, bạn không thể tinh chỉnh quyền truy cập ở đường dẫn con nếu đã cấp quyền truy cập ở cấp cao hơn trong hệ thống phân cấp dữ liệu.
Truy cập vào quy tắc
Để xem các Security Rules hiện có, hãy sử dụng Firebase CLI hoặc Firebase console. Hãy nhớ chỉnh sửa 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 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ó phản ánh các bản cập nhật gần đây nhất hay không, thì bảng điều khiển của Firebase luôn hiển thị phiên bản được triển khai gần đây nhất của Firebase Security Rules.
Để truy cập vào quy tắc trong bảng điều khiển của Firebase Firebase, hãy chọn dự án của bạn, sau đó chuyển đến Realtime Database, Cloud Firestore hoặc Storage. Nhấp vào Rules (Quy tắc) sau khi bạn vào đúng cơ sở dữ liệu hoặc vùng lưu trữ.
Để truy cập vào quy tắc trong Firebase CLI, hãy chuyển đến tệp quy tắc được ghi chú trong tệp firebase.json.
Viết quy tắc cơ bản
Khi bạn đang phát triển ứng dụng và tìm hiểu Security Rules, hãy thử triển khai một vài 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 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 vào một nhóm hoặc loại người dùng.
Kiểm thử quy tắc
Để xác thực đầy đủ hành vi của ứng dụng và xác minh cấu hình Firebase Security Rules
, hãy sử dụng Trình mô phỏng Firebase để chạy và tự động hoá các bài kiểm thử đơn vị
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, bạn nên kiểm thử kỹ hơn bằng Trình mô phỏng Firebase trước khi triển khai các thay đổi vào môi trường chính thức.
Triển khai quy tắc
Sử dụng bảng điều khiển của Firebase hoặc Firebase CLI để triển khai quy tắc vào môi trường chính thức. Hãy làm theo các bước được nêu trong Quản lý và triển khai Firebase Security Rules.