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 – уникальный язык, созданный для более сложных структур правил.

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

Начало работы

Основные функции

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

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

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

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

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

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

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

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

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

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

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

Дальнейшие действия