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

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

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

Firebase Realtime Database имеет аналогичную функцию, называемую Firebase Realtime Database Security Rules

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

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

Авторизация

Идентификация пользователя — это только часть безопасности. Как только вы узнаете, кто они, вам понадобится способ контролировать их доступ к файлам в Cloud Storage .

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

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

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

Проверка данных

Firebase Security Rules для Cloud Storage также можно использовать для проверки данных, включая проверку имени и пути файла, а также свойств метаданных файла, таких как 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/.*');
    }
  }
}

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

  • Начните планировать разработку правил для своих сегментов Cloud Storage .

  • Узнайте больше о защите ваших данных с помощью правил безопасности.