Правила безопасности Firebase

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

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

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

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

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

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

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

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

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

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

Для базы данных реального времени правила на основе JSON используют следующий синтаксис:

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

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

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

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

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

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