Традиционно безопасность была одной из самых сложных частей разработки приложений. В большинстве приложений разработчики должны создать и запустить сервер, который обрабатывает аутентификацию (кто такой пользователь) и авторизацию (что пользователь может делать). Аутентификацию и авторизацию сложно настроить, еще труднее сделать правильно, и они имеют решающее значение для успеха вашего продукта.
Подобно тому, как Firebase Authentication упрощает аутентификацию пользователей, Firebase Security Rules for Cloud Storage упрощает авторизацию пользователей и проверку запросов. Правила безопасности облачного хранилища управляют сложностью за вас, позволяя указывать разрешения на основе пути. Всего несколькими строками кода вы можете написать правила авторизации, которые ограничивают запросы к облачному хранилищу определенным пользователем или ограничивают размер загрузки.
База данных 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/.*'); } } }
Следующие шаги
Начните разработку правил планирования для корзин Cloud Storage.
Узнайте больше о защите ваших данных с помощью правил безопасности.