Traditionnellement, la sécurité a été l'une des parties les plus complexes du développement d'applications. Dans la plupart des applications, les développeurs doivent créer et exécuter un serveur qui gère l'authentification (qui est un utilisateur) et l'autorisation (ce qu'un utilisateur peut faire). L'authentification et l'autorisation sont difficiles à configurer, plus difficiles à obtenir et essentielles au succès de votre produit.
Tout comme Firebase Authentication vous permet d'authentifier facilement vos utilisateurs, Firebase Security Rules for Cloud Storage vous permet d'autoriser facilement les utilisateurs et de valider les demandes. Les règles de sécurité Cloud Storage gèrent la complexité pour vous en vous permettant de spécifier des autorisations basées sur le chemin. En quelques lignes de code seulement, vous pouvez rédiger des règles d'autorisation qui restreignent les requêtes Cloud Storage à un certain utilisateur ou limitent la taille d'un téléchargement.
La base de données Firebase Realtime a une fonctionnalité similaire, appelée Règles de base de données Firebase Realtime
Authentification
Savoir qui sont vos utilisateurs est une partie importante de la création d'une application, et Firebase Authentication fournit une solution d'authentification simple, sécurisée et côté client uniquement. Les règles de sécurité Firebase pour Cloud Storage sont liées à l'authentification Firebase pour une sécurité basée sur l'utilisateur. Lorsqu'un utilisateur est authentifié avec Firebase Authentication, la variable request.auth
dans Cloud Storage Security Rules devient un objet contenant l'ID unique de l'utilisateur ( request.auth.uid
) et toutes les autres informations utilisateur dans le jeton ( request.auth.token
) . Lorsque l'utilisateur n'est pas authentifié, request.auth
est null
. Cela vous permet de contrôler en toute sécurité l'accès aux données par utilisateur. Vous pouvez en savoir plus dans la section Authentification .
Autorisation
Identifier votre utilisateur n'est qu'une partie de la sécurité. Une fois que vous savez qui ils sont, vous avez besoin d'un moyen de contrôler leur accès aux fichiers dans Cloud Storage.
Cloud Storage vous permet de spécifier les règles d'autorisation par fichier et par chemin qui vivent sur nos serveurs et de déterminer l'accès aux fichiers de votre application. Par exemple, les règles de sécurité Cloud Storage par défaut nécessitent une authentification Firebase pour effectuer des opérations de read
ou d' write
sur tous les fichiers:
service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write: if request.auth != null; } } }
Vous pouvez modifier ces règles en sélectionnant une application Firebase dans la console Firebase et en affichant l'onglet Rules
de la section Stockage.
La validation des données
Les règles de sécurité Firebase pour Cloud Storage peuvent également être utilisées pour la validation des données, y compris la validation du nom et du chemin du fichier, ainsi que des propriétés de métadonnées de fichier telles que contentType
et 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/.*'); } } }
Prochaines étapes
Commencez à planifier le développement de règles pour vos buckets Cloud Storage.
En savoir plus sur la sécurisation de vos données à l' aide des règles de sécurité.