Traditionnellement, la sécurité est 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 et à mettre en place correctement, mais elles sont essentielles à la réussite de votre produit.
Tout comme Firebase Authentication vous permet d'authentifier facilement vos utilisateurs, Firebase Security Rules pour Cloud Storage vous permet d'autoriser facilement les utilisateurs et de valider les requêtes. Cloud Storage Security Rules gère la complexité pour vous en vous permettant de spécifier des autorisations basées sur le chemin d'accès. En quelques lignes de code, vous pouvez écrire des règles d'autorisation qui limitent les requêtes Cloud Storage à un certain utilisateur ou qui limitent la taille d'un import.
Firebase Realtime Database propose une fonctionnalité similaire, appelée Firebase Realtime Database Security Rules.
Authentification
Il est important de connaître vos utilisateurs lorsque vous créez une application. Firebase Authentication fournit une solution d'authentification facile à utiliser, sécurisée et côté client uniquement. Firebase Security Rules pour Cloud Storage est lié à Firebase Authentication pour la sécurité basée sur les utilisateurs. Lorsqu'un utilisateur est authentifié avec Firebase Authentication, la variable request.auth
dans Cloud Storage Security Rules devient un objet qui contient l'ID unique de l'utilisateur (request.auth.uid
) et toutes les autres informations utilisateur du jeton (request.auth.token
). Lorsque l'utilisateur n'est pas authentifié, request.auth
est null
. Cela vous permet de contrôler de manière sécurisée l'accès aux données pour chaque utilisateur. Pour en savoir plus, consultez la section Authentification.
Autorisation
L'identification de vos utilisateurs n'est qu'une partie de la sécurité. Une fois que vous savez qui ils sont, vous devez trouver un moyen de contrôler leur accès aux fichiers dans Cloud Storage.
Cloud Storage vous permet de spécifier des règles d'autorisation par fichier et par chemin d'accès qui se trouvent sur nos serveurs et qui déterminent l'accès aux fichiers de votre application. Par exemple, le Cloud Storage Security Rules par défaut nécessite Firebase Authentication pour effectuer des opérations read
ou write
sur tous les fichiers :
service firebase.storage { match /b/{bucket}/o { match /someFolder/{fileName} { 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 "Storage" (Stockage).
Validation des données
Firebase Security Rules pour Cloud Storage peut également être utilisé pour la validation des données, y compris pour valider le nom et le chemin d'accès au fichier, ainsi que les propriétés des métadonnées du 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/.*'); } } }
Étapes suivantes
Commencez à développer des règles de planification pour vos buckets Cloud Storage.
En savoir plus sur la sécurisation de vos données à l'aide de règles de sécurité