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