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

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

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

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

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

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

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

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