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