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 ), клиенты не несут ответственности за обеспечение безопасности, ошибки не ставят под угрозу данные, и ваши данные всегда защищены.

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

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

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