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

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

Данный запрос посвящен созданию Security Rules для:

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

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

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

  • Ознакомьтесь с рекомендациями по использованию Firebase Security Rules .
  • Для запуска модульных тестов Firebase Security Rules и использования Firebase Local Emulator Suite установите Node.js и Firebase CLI . Полные инструкции см. в Firebase Local Emulator Suite .
  • Рекомендуется: Если вы еще этого не сделали, установите Gemini CLI . Следующие инструкции объясняют, как установить и использовать расширение Firebase для Gemini CLI для генерации Security Rules . Если вы предпочитаете использовать другого ИИ-помощника, вы можете скопировать и вставить запрос для Cloud Firestore или Cloud Storage for Firebase из репозитория firebase-tools в выбранного вами ИИ-помощника.
  • Расширение Firebase для Gemini CLI подключается к серверу Firebase MCP для доступа к запросам, которые генерируют и проверяют Firebase Security Rules , а также помогают в тестировании и развертывании Security Rules . Перед использованием расширения для генерации Firebase Security Rules необходимо установить сервер Firebase MCP .

Ограничения

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

  • Данная команда предназначена для генерации Firebase Security Rules для Cloud Firestore и Cloud Storage for Firebase . Она пока не способна генерировать Security Rules для Firebase Realtime Database .

  • Firebase Security Rules не вызываются при доступе к вашей базе данных или хранилищу с сервера или из другой серверной среды, например, при использовании Firebase Admin SDK . Если вы используете Admin SDK , вы сами отвечаете за управление авторизацией и проверкой данных в своем серверном коде.

  • Gemini в Firebase работающий в консоли Firebase не может генерировать Firebase Security Rules , даже при использовании этого запроса. Вместо этого используйте альтернативного помощника на основе ИИ, имеющего доступ к вашему коду, например Gemini CLI (описание которого приведено на этой странице).

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

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

Для использования этого расширения необходимо выполнить три шага, которые описаны в этом разделе:

  1. Создайте свои Security Rules и тесты .

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

  3. Внедрите Security Rules в свой проект Firebase .

Шаг 1 : Создание Security Rules и тестов.

Установите и запустите расширение:

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

    gemini extensions install https://github.com/gemini-cli-extensions/firebase
  2. Запустите Gemini CLI :

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

    • Создание Security Rules для Cloud Firestore :

      /firestore:generate_security_rules

      В родительском каталоге расширение создает файл firestore.rules и новый каталог security_rules_test_firestore , содержащий проект Node.js с модульными тестами для сгенерированных Security Rules .

    • Создание Security Rules для Cloud Storage for Firebase :

      /storage:generate_security_rules

      В родительском каталоге расширение создает файл storage.rules и новый каталог security_rules_test_storage , содержащий проект Node.js с модульными тестами для сгенерированных Security Rules .

Шаг 2 : Проверка результатов проверки и тестирования Security Rules

  1. Убедитесь, что ваш ИИ-помощник выполнил следующие действия. После запуска расширения вы должны получить сгенерированное резюме.

    • Проверка синтаксиса : После генерации Security Rules Gemini CLI автоматически проверяет синтаксис с помощью команды firebase_validate_security_rules с сервера Firebase MCP.

    • Модульные тесты : После проверки синтаксиса Gemini CLI пытается запустить сгенерированные модульные тесты, используя Firebase Local Emulator Suite .

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

    • Вариант 1: Дать команду Gemini CLI на запуск тестов:

      Firebase Emulator Suite is running in a separate terminal. Please execute the tests.
      
    • Вариант 2: Запустите тесты вручную, следуя инструкциям в файле README.md , расположенном в каталоге rules_test или storage_rules_test .

Шаг 3 : Разверните Security Rules в вашем проекте Firebase.

Когда вы будете удовлетворены результатом создания Security Rules , используйте следующие команды Firebase CLI для развертывания Security Rules в вашем проекте Firebase:

  • Cloud Firestore

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

    firebase deploy --only storage

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

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