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 của bạn (chẳng hạn như Gemini CLI) tạo và tinh chỉnh Firebase Security Rules cho ứng dụng. Bạn có thể dùng câu lệnh này để soạn thảo 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 dành riêng cho người dùng, triển khai các 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 Rules cho:

  • Cloud Firestore: Bảo mật các bộ sưu tậ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 đã lưu trữ.

Việc sử dụng lời nhắc 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 luôn phải kiểm tra kỹ lưỡng Rules trước khi triển khai cho hoạt động sản xuất. Để biết thêm thông tin về việc kiểm thử Rules, hãy xem bài viết Bắt đầu sử dụng Firebase Security Rules: Kiểm thử các quy tắc.

Đ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 hạn chế này có thể thay đổi. Hãy thường xuyên kiểm tra lại để nắm được thông tin cập nhật.

  • Gemini ở Firebase không thể tạo Firebase Security Rules. Sử dụng một trợ lý AI thay thế, chẳng hạn như Gemini CLI.
  • Câu lệnh này được thiết kế để tạo Firebase Security Rules cho Cloud FirestoreCloud Storage for Firebase. Công cụ này chưa thể tạo Rules cho Firebase Realtime Database.
  • Firebase Security Rules sẽ không được gọi khi truy cập vào cơ sở dữ liệu hoặc nhóm 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ợ.

Sử dụng câu lệnh

  1. Sử dụng tiện ích Gemini CLI thử nghiệm cho Firebase Security Rules để tạo các quy tắc và kiểm thử.

    Tiện ích này phân tích mã nguồn của bạn để giúp xác định các giản đồ dữ liệu và mẫu truy cập cho Cloud FirestoreCloud Storage. Công cụ này được thiết kế để tạo bản nháp Rules dựa trên nguyên tắc về đặc quyền tối thiểu và cố gắng khám phá các lỗ hổng thông qua các mô phỏng "tấn công" lặp đi lặp lại. Để hỗ trợ quy trình xác minh cuối cùng, công cụ này cung cấp một bộ kiểm thử đơn vị bắt đầu bằng @firebase/rules-unit-testing, cho phép bạn xác minh logic bảo mật cục bộ bằng Bộ công cụ mô phỏng cục bộ của Firebase.

    Cách cài đặt và sử dụng tiện ích này:

    1. Cài đặt tiện ích Gemini CLI:

      gemini extensions install https://github.com/firebase/snippets-rules
      
    2. Mở Gemini CLI.

      gemini
      
    1. Từ gốc của dự án, hãy chạy tiện ích để tạo quy tắc cho Cloud Firestore:

      /firebase-rules:firestore Generate rules using PROJECT ID PROJECT_ID
      

      Hoặc tạo quy tắc cho Cloud Storage:

      /firebase-rules:storage Generate rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME
      

    Tiện ích này sẽ tạo một thư mục rules_test cho Cloud Firestore hoặc một thư mục storage_rules_test cho Cloud Storage trong thư mục gốc của dự án. Thư mục mới này chứa tệp .rules đã tạo cùng với một dự án Node.js có các bài kiểm thử đơn vị.

  2. Xem kết quả kiểm thử và xác thực quy tắc:

    • Xác thực cú pháp – Sau khi tạo quy tắc, Gemini CLI sẽ tự động xác thực cú pháp bằng lệnh firebase_validate_security_rules từ máy chủ Firebase MCP.
    • Kiểm thử đơn vị – Sau khi xác thực cú pháp, Gemini CLI sẽ cố gắng chạy các kiểm thử đơn vị đã tạo bằng cách sử dụng Firebase Local Emulator Suite. Để chạy các kiểm thử, bạn cần chạy Firebase Local Emulator Suite trong một thiết bị đầu cuối riêng biệt.

    Nếu các kiểm thử không chạy tự động, 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 lựa chọn sau để chạy các kiểm thử:

    *   Instruct Gemini CLI to run tests:
        ```none
        Firebase Emulator Suite is running in a separate terminal. Please
        execute the tests.
        ```
    *   Run tests manually by following the instructions in the `README.md`
        file in the `rules_test` or `storage_rules_test` directory.
    
  3. Khi bạn hài lòng với kết quả của Rules đã tạo, hãy dùng lệnh CLI Firebase sau đây để triển khai Rules.

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

Tài nguyên khác

  • Để được trợ giúp thêm về khả năng bảo mật, bạn cũng có thể sử dụng tiện ích bảo mật cho Gemini CLI, một tiện ích nguồn mở phân tích các thay đổi về mã để xác định các rủi ro bảo mật và lỗ hổng.