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

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

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