Câu lệnh AI: Viết các quy tắc bảo mật của Firebase

Câu lệnh này có thể giúp trợ lý AI (như Google Antigravity) tạo và tinh chỉnh Firebase Security Rules cho ứng dụng của bạn. Bạn có thể dùng câu lệnh này để soạn thảo Security Rules cho các trường hợp sử dụng phổ biến, chẳng hạn như cấp quyền truy cập cho người dùng cụ thể, triển khai quyền dựa trên vai trò và xác thực dữ liệu.

Câu lệnh này tập trung vào việc tạo Security Rules cho:

  • Cloud Firestore: Bảo mật các tập hợp và tài liệu dựa trên logic của ứng dụng.
  • Cloud Storage for Firebase: Xác thực quyền truy cập vào các tệp bạn lưu trữ.

Việc sử dụng câu lệnh này có thể giúp bạn bắt đầu với một trạng thái bảo mật mạnh mẽ, nhưng bạn phải luôn kiểm tra kỹ Security Rules trước khi triển khai vào môi trường thực tế. Để biết thêm thông tin về cách kiểm thử Security Rules, hãy xem bài viết Bắt đầu sử dụng Firebase Security Rules: Kiểm thử Security Rules.

Điều kiện tiên quyết

Hạn chế

Chúng tôi đang tích cực cải thiện trải nghiệm này, vì vậy, danh sách các điểm hạn chế này có thể thay đổi. Hãy thường xuyên kiểm tra lại để biết thông tin cập nhật.

  • Câu lệnh này được thiết kế để tạo Firebase Security Rules cho Cloud Firestore và Cloud Storage for Firebase. Công cụ này chưa thể tạo Security Rules cho Firebase Realtime Database.

  • Firebase Security Rules không được gọi khi truy cập vào cơ sở dữ liệu hoặc bộ chứa của bạn từ một máy chủ hoặc môi trường phụ trợ khác, chẳng hạn như khi sử dụng Firebase Admin SDK. Nếu đang sử dụng Admin SDK, bạn có trách nhiệm quản lý việc uỷ quyền và xác thực dữ liệu trong mã phụ trợ.

  • Gemini trong Firebase trong bảng điều khiển Firebase không thể tạo Firebase Security Rules, ngay cả khi sử dụng câu lệnh này. Thay vào đó, hãy sử dụng một trợ lý AI khác có quyền truy cập vào toàn bộ mã nguồn của bạn, chẳng hạn như Antigravity (được mô tả trên trang này).

Dùng câu lệnh

Bạn có thể sử dụng tính năng này khi dùng máy chủ MCP của Firebase và kỹ năng của tác nhân Firebase với một trợ lý AI tương thích (chẳng hạn như Antigravity) để tạo Security Rules và kiểm thử. Các công cụ này phân tích mã nguồn để giúp xác định giản đồ dữ liệu và mẫu truy cập cho Cloud Firestore và Cloud Storage. Các công cụ này được thiết kế để soạn thảo Security Rules dựa trên nguyên tắc về đặc quyền tối thiểu và cố gắng phát hiện các lỗ hổng bảo mật thông qua các mô phỏng "tấn công" lặp đi lặp lại. Để hỗ trợ quá trình xác minh cuối cùng, họ cung cấp một bộ kiểm thử đơn vị ban đầu bằng cách sử dụng @firebase/rules-unit-testing, cho phép bạn xác minh logic bảo mật của mình trên thiết bị bằng Firebase Local Emulator Suite.

Để sử dụng các công cụ này, bạn cần thực hiện 3 bước được mô tả trong phần này:

  1. Tạo Security Rules và thử nghiệm.

  2. Xem kết quả xác thực và kiểm thử Security Rules.

  3. Triển khai Security Rules cho dự án Firebase.

Bước 1: Tạo Security Rules và kiểm thử

Thiết lập và chạy các công cụ:

  1. Bật các kỹ năng của tác nhân Firebase:

    • Google Antigravity: Tham khảo hướng dẫn thiết lập để cài đặt trình bổ trợ Firebase từ Antigravity Marketplace. Bạn cũng có thể cài đặt các kỹ năng ở cấp dự án bằng cách chạy:

      npx skills add firebase/agent-skills --agent=antigravity
    • Các tác nhân lập trình AI khác: Làm theo hướng dẫn về kỹ năng của tác nhân và máy chủ MCP.

  2. Khởi động trợ lý AI (ví dụ: chạy agy trong thiết bị đầu cuối cho CLI hoặc mở ứng dụng dành cho máy tính).

  3. Từ thư mục gốc của dự án, hãy yêu cầu tác nhân tạo Security Rules cho Cloud Firestore hoặc Cloud Storage dựa trên cách tác nhân lập trình AI tương tác với lời nhắc MCP:

    • Đối với các tác nhân lập trình sử dụng ngôn ngữ tự nhiên (như Antigravity), hãy ra lệnh cho tác nhân bằng ngôn ngữ tự nhiên.

      • Tạo Security Rules cho Cloud Firestore:

        Generate Firestore security rules for this project, then run the unit tests.
        

        Trong thư mục mẹ, tác nhân sẽ tạo một tệp firestore.rules và một thư mục security_rules_test_firestore mới chứa dự án Node.js có các bài kiểm thử đơn vị cho Security Rules được tạo.

      • Tạo Security Rules cho Cloud Storage for Firebase:

        Generate Cloud Storage security rules for this project, then run the unit tests.
        

        Trong thư mục mẹ, tác nhân sẽ tạo một tệp storage.rules và một thư mục security_rules_test_storage mới chứa dự án Node.js có các bài kiểm thử đơn vị cho Security Rules được tạo.

    • Đối với các tác nhân lập trình hỗ trợ lệnh dấu gạch chéo (như Claude Code), hãy sử dụng các lệnh sau.

      • Tạo Security Rules cho Cloud Firestore:

        /firestore:generate_security_rules
        
      • Tạo Security Rules cho Cloud Storage for Firebase:

        /storage:generate_security_rules
        
    • Đối với những tác nhân lập trình không hỗ trợ tính năng tích hợp câu lệnh MCP, bạn có thể sao chép mẫu câu lệnh thô từ kho lưu trữ firebase-tools rồi dán vào cuộc trò chuyện của tác nhân.

Bước 2: Xem kết quả xác thực và kiểm thử Security Rules

  1. Đảm bảo rằng tác nhân lập trình AI của bạn đã thực hiện những việc sau. Bạn sẽ nhận được một bản tóm tắt được tạo sau khi các công cụ chạy.

    • Xác thực cú pháp: Sau khi tạo Security Rules, tác nhân lập trình AI của bạn sẽ tự động xác thực cú pháp bằng lệnh firebase_validate_security_rules từ máy chủ MCP của Firebase.

    • Kiểm thử đơn vị: Sau khi xác thực cú pháp, tác nhân lập trình AI sẽ cố gắng chạy các kiểm thử đơn vị đã tạo bằng Firebase Local Emulator Suite.

  2. Nếu các bài kiểm thử không tự động chạy, hãy khởi động Firebase Local Emulator Suite trong một thiết bị đầu cuối riêng biệt, sau đó sử dụng một trong các tuỳ chọn sau để chạy các bài kiểm thử:

    • Cách 1: Hướng dẫn trợ lý AI chạy kiểm thử:

      Firebase Emulator Suite is running in a separate terminal. Please execute the tests.
      
    • Cách 2: Chạy kiểm thử theo cách thủ công bằng cách làm theo hướng dẫn trong tệp README.md trong thư mục rules_test hoặc storage_rules_test.

Bước 3: Triển khai Security Rules cho dự án Firebase của bạn

Khi bạn hài lòng với kết quả của Security Rules đã tạo, hãy sử dụng các lệnh CLI Firebase sau đây để triển khai Security Rules cho dự án Firebase của bạn:

  • Cloud Firestore

    firebase deploy --only firestore:rules
  • Cloud Storage for Firebase

    firebase deploy --only storage