Firebase Security Rules обеспечивают надежную, полностью настраиваемую защиту ваших данных в Cloud Firestore , Realtime Database и Cloud Storage . Вы можете легко начать работу с Rules , следуя инструкциям в этом руководстве, защищая свои данные и приложение от злоумышленников.
Понимать язык Firebase Security Rules
Прежде чем приступить к написанию правил, стоит уделить время изучению конкретного языка Firebase Security Rules для используемых вами продуктов Firebase. Realtime Database использует синтаксис, подобный JavaScript, и структуру JSON для своих Rules . В качестве альтернативы, Cloud Firestore и Cloud Storage используют надмножество языка общих выражений (CEL), которое опирается на операторы match
и allow
, устанавливающие условие для доступа по определенному пути.
Узнайте больше о языке Firebase Security Rules .
Настроить Authentication
Если вы еще этого не сделали, идентифицируйте своих пользователей с помощью Firebase Authentication . Firebase Authentication поддерживает множество распространенных методов аутентификации и интегрируется с Firebase Security Rules , предоставляя комплексные возможности проверки.
Вы можете настроить дополнительную пользовательскую информацию аутентификации для своего приложения.
Узнайте больше о Firebase Security Rules и Firebase Authentication .
Определите структуры данных и правил
То, как вы структурируете свои данные, может повлиять на то, как вы структурируете и реализуете свои правила. Когда вы определяете свои структуры данных, учитывайте последствия, которые они могут иметь для вашей структуры Rules .
Например, в Cloud Firestore вы можете захотеть включить поле, которое обозначает определенную роль для каждого пользователя. Затем ваши правила могут считывать это поле и использовать его для предоставления доступа на основе ролей.
При определении архитектур данных и правил помните, что если какое-либо правило предоставляет доступ к набору данных, Firebase Security Rules предоставляет доступ к этому набору данных. Другими словами, вы не можете уточнить доступ на подпути, если вы предоставили доступ на более высоком уровне в иерархии данных.
Доступ к вашим правилам
Чтобы просмотреть существующие Rules , используйте Firebase CLI или консоль Firebase . Убедитесь, что вы редактируете правила, используя один и тот же метод, последовательно, чтобы избежать ошибочной перезаписи обновлений. Если вы не уверены, отражают ли ваши локально определенные правила самые последние обновления, консоль Firebase всегда показывает самую последнюю развернутую версию ваших Firebase Security Rules .
Чтобы получить доступ к правилам из консоли Firebase , выберите свой проект, затем перейдите в Realtime Database , Cloud Firestore или Storage . Нажмите Rules , как только вы окажетесь в нужной базе данных или хранилище.
Чтобы получить доступ к правилам из Firebase CLI, перейдите к файлу правил, указанному в файле firebase.json .
Напишите основные правила
Разрабатывая приложение и изучая Rules , попробуйте реализовать несколько базовых правил безопасности , включая следующие варианты использования:
- Только для владельца контента: ограничение доступа пользователя к контенту.
- Смешанный доступ: ограничить доступ пользователя к записи, но разрешить публичный доступ к чтению.
- Доступ на основе атрибутов: ограничение доступа для группы или типа пользователей.
Проверьте свои правила
Для полной проверки поведения вашего приложения и проверки Firebase Security Rules
конфигурации, используйте эмулятор Firebase для запуска и автоматизации модульных тестов в локальной среде.
Если вы настраиваете Firebase Security Rules в консоли Firebase , вы можете использовать Firebase Rules Simulator для быстрой проверки поведения. Однако мы рекомендуем провести более тщательное тестирование с помощью Firebase Emulator, прежде чем развертывать изменения в производстве.
Развертывание правил
Используйте консоль Firebase или Firebase CLI для развертывания правил в производстве. Следуйте инструкциям, изложенным в разделе Управление и развертывание Firebase Security Rules .