Firebase Security Rules

Используйте наши гибкие и расширяемые правила безопасности Firebase для защиты ваших данных в Cloud Firestore , Firebase Realtime Database и Cloud Storage .

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

Firebase Security Rules используют расширяемые и гибкие языки конфигурации для определения того, к каким данным ваши пользователи могут получить доступ в Realtime Database , Cloud Firestore и Cloud Storage . Firebase Realtime Database Security Rules используют JSON в определениях правил, в то время как Cloud Firestore Security Rules и Firebase Security Rules для Cloud Storage используют уникальный язык, разработанный для обработки более сложных структур, специфичных для правил.

Узнайте больше о том, как настроить Rules для конкретных продуктов Firebase, используемых в вашем приложении, и о том, чем отличается поведение Rules в разных продуктах Firebase.

Начать

Ключевые возможности

Гибкость Создавайте собственные правила, которые соответствуют структуре и поведению вашего приложения. Rules используют языки программирования, позволяющие использовать ваши собственные данные для авторизации доступа.
Гранулярность Ваши правила могут быть настолько широкими или узкими, насколько это необходимо.
Независимая безопасность Поскольку Rules определяются вне вашего приложения (в консоли Firebase или Firebase CLI), клиенты не несут ответственности за обеспечение безопасности, ошибки не ставят под угрозу данные, и ваши данные всегда защищены.

Как они работают?

Firebase Security Rules работают путем сопоставления шаблона с путями к базе данных, а затем применения пользовательских условий для разрешения доступа к данным по этим путям. Все Rules в продуктах Firebase содержат компонент сопоставления путей и условное выражение, разрешающее доступ на чтение или запись. Необходимо определить Rules для каждого продукта Firebase, используемого в вашем приложении.

Для Cloud Firestore и Cloud Storage Rules используется следующий синтаксис:

service <<name>> {
  // Match the resource path.
  match <<path>> {
    // Allow the request if the following conditions are true.
    allow <<methods>> : if <<condition>>
  }
}

Для Realtime Database Rules на основе JSON используют следующий синтаксис:

{
  "rules": {
    "<<path>>": {
    // Allow the request if the condition for each method is true.
      ".read": <<condition>>,
      ".write": <<condition>>
    }
  }
}

Rules применяются в виде операторов OR , а не AND Следовательно, если несколько правил соответствуют одному пути, и хотя бы одно из условий соответствия предоставляет доступ, Rules предоставляют доступ к данным по этому пути. Таким образом, если общее правило предоставляет доступ к данным, вы не можете ограничить доступ с помощью более конкретного правила. Однако вы можете избежать этой проблемы, убедившись, что ваши Rules не слишком сильно перекрываются. Firebase Security Rules помечают перекрытия в соответствующих путях как предупреждения компилятора.

Firebase Security Rules также могут использовать Authentication для предоставления разрешений на основе пользователей, и устанавливаемые вами условия могут быть как очень простыми, так и невероятно сложными. Узнайте больше о языке и поведении Rules , прежде чем начать Rules писать.

Путь реализации

Интегрируйте SDK продукта. Настройте Cloud Firestore , Cloud Storage или Realtime Database для своего приложения.
Напишите свои Firebase Security Rules Узнайте больше о том , как работают Rules , и настройте несколько базовых Rules
Проверьте свои Firebase Security Rules Используйте эмуляторы Realtime Database и Cloud Firestore , чтобы протестировать поведение вашего приложения и проверить правила перед их развертыванием в рабочей среде.
Разверните Firebase Security Rules Для развертывания правил в рабочей среде используйте консоль Firebase или Firebase CLI.

Следующие шаги