Задание от ИИ: Напишите правила безопасности 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 — расширение с открытым исходным кодом, которое анализирует изменения кода для выявления рисков и уязвимостей в области безопасности.