Задание от ИИ: Напишите правила безопасности Firebase

Эта подсказка поможет вашему ИИ-помощнику, например Gemini CLI , генерировать и уточнять Firebase Security Rules для вашего приложения. Вы можете использовать подсказку для создания Rules для распространенных сценариев использования, таких как предоставление доступа конкретным пользователям, реализация разрешений на основе ролей и проверка данных.

Данное задание направлено на создание Rules для:

  • Cloud Firestore : Защищайте коллекции и документы в соответствии с логикой вашего приложения.
  • Cloud Storage for Firebase : проверка прав доступа к хранящимся файлам.

Использование этой подсказки поможет вам начать работу с надежной системой безопасности, но перед развертыванием в производственной среде всегда следует тщательно тестировать ваши Rules . Для получения дополнительной информации о тестировании Rules ознакомьтесь с разделом «Начало работы с Firebase Security Rules : тестирование правил» .

Предварительные требования

Ограничения

Мы активно работаем над улучшением этого сервиса, поэтому этот список ограничений может измениться. Регулярно проверяйте обновления.

  • Gemini в Firebase не может генерировать Firebase Security Rules . Используйте альтернативного помощника на основе ИИ, например Gemini CLI .
  • Данная команда предназначена для генерации Firebase Security Rules для Cloud Firestore и Cloud Storage for Firebase . Она пока не способна генерировать Rules для Firebase Realtime Database .
  • Firebase Security Rules не вызываются при доступе к вашей базе данных или хранилищу с сервера или из другой серверной среды, например, при использовании Firebase Admin SDK . Если вы используете Admin SDK , вы сами отвечаете за управление авторизацией и проверкой данных в своем серверном коде.

Воспользуйтесь подсказкой

  1. Используйте экспериментальное расширение Gemini CLI для Firebase Security Rules , чтобы генерировать правила и тесты.

    Это расширение анализирует ваш исходный код, чтобы помочь определить схемы данных и шаблоны доступа для Cloud Firestore и Cloud Storage . Оно предназначено для составления Rules на основе принципа минимальных привилегий и пытается выявить уязвимости с помощью итеративных симуляций «атак». Для облегчения окончательной проверки оно предоставляет начальный набор модульных тестов с использованием @firebase/rules-unit-testing , что позволяет проверить вашу логику безопасности локально с помощью набора локальных эмуляторов Firebase.

    Для установки и использования расширения:

    1. Установите расширение Gemini CLI :

      gemini extensions install https://github.com/firebase/snippets-rules
      
    2. Откройте Gemini CLI .

      gemini
      
    1. Запустите расширение из корневой папки вашего проекта, чтобы сгенерировать правила для Cloud Firestore :

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

      Или сгенерируйте правила для Cloud Storage :

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

    Расширение создает в корневой директории вашего проекта каталог rules_test для Cloud Firestore или storage_rules_test для Cloud Storage . Этот новый каталог содержит сгенерированный файл .rules , а также проект Node.js с модульными тестами.

  2. Проверка правил и результатов тестирования:

    • Проверка синтаксиса — После генерации правил Gemini CLI автоматически проверяет синтаксис с помощью команды firebase_validate_security_rules с сервера Firebase MCP.
    • Модульные тесты — После проверки синтаксиса Gemini CLI пытается запустить сгенерированные модульные тесты, используя Firebase Local Emulator Suite . Для запуска тестов необходимо запустить Firebase Local Emulator Suite в отдельном терминале.

    Если тесты не запускаются автоматически, запустите Firebase Local Emulator Suite в отдельном терминале , а затем используйте один из следующих вариантов для запуска тестов:

    *   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. Когда вы будете удовлетворены результатом создания Rules , используйте следующую команду Firebase CLI для развертывания Rules .

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

Дополнительные ресурсы

  • Для дополнительной помощи в обеспечении безопасности вы также можете использовать расширение безопасности для Gemini CLI — расширение с открытым исходным кодом, которое анализирует изменения кода для выявления рисков и уязвимостей в области безопасности.