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

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

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 CLI.

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