Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
Эта страница переведена с помощью Cloud Translation API.
Switch to English

Общие сведения о правилах безопасности Firebase для облачного хранилища

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

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

База данных Firebase Realtime имеет аналогичную функцию, которая называется Правила базы данных Firebase Realtime.

Аутентификация

Знание того, кто ваши пользователи, является важной частью создания приложения, и Firebase Authentication предоставляет простое в использовании, безопасное решение для аутентификации только на стороне клиента. Правила безопасности Firebase для облачного хранилища связаны с аутентификацией Firebase для обеспечения безопасности на основе пользователей. Когда пользователь аутентифицируется с помощью Firebase Authentication, переменная request.auth в правилах безопасности облачного хранилища становится объектом, который содержит уникальный идентификатор пользователя ( request.auth.uid ) и всю остальную информацию о пользователе в токене ( request.auth.token ). . Когда пользователь не аутентифицирован, request.auth имеет значение null . Это позволяет вам безопасно контролировать доступ к данным для каждого пользователя. Вы можете узнать больше в разделе « Аутентификация ».

Авторизация

Идентификация вашего пользователя - только часть безопасности. Как только вы узнаете, кто они, вам понадобится способ контролировать их доступ к файлам в облачном хранилище.

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

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

Вы можете изменить эти правила, выбрав приложение Firebase в консоли Firebase и просмотрев вкладку « Rules » в разделе «Хранилище».

Проверка достоверности данных

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

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

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