Традиционно безопасность была одной из самых сложных частей разработки приложений. В большинстве приложений разработчикам приходится создавать и запускать сервер, который обрабатывает аутентификацию (кто пользователь) и авторизацию (что может делать пользователь). Аутентификацию и авторизацию сложно настроить, сложнее выполнить правильно, и они имеют решающее значение для успеха вашего продукта.
Подобно тому, как 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 .
Узнайте больше о защите ваших данных с помощью правил безопасности.