Les Firebase Security Rules offrent une protection robuste et entièrement personnalisable pour vos données dans Cloud Firestore, Realtime Database et Cloud Storage. Vous pouvez facilement obtenir avec Rules en suivant les étapes de ce guide, en sécurisant votre et protéger votre appli contre les utilisateurs malveillants.
Comprendre la langue suivante : Firebase Security Rules
Avant de commencer à écrire des règles, prenez le temps d'examiner la syntaxe Firebase Security Rules spécifique aux produits Firebase que vous utilisez.
Cloud Storage utilise un sur-ensemble.
du langage CEL (Common Expression Language), qui repose sur match
et allow
qui définissent une condition d'accès selon un chemin d'accès défini.
Commencez par apprendre la syntaxe de base du langage Firebase Security Rules.
Configurer Authentication
Si vous ne l'avez pas déjà fait, ajoutez Firebase Authentication à votre application. Firebase Authentication prend en charge de nombreuses méthodes d'authentification courantes et s'intègre à Firebase Security Rules pour fournir des fonctionnalités de validation complètes.
Vous pouvez configurer des informations d'authentification supplémentaires et personnalisées pour votre application.
En savoir plus sur Firebase Security Rules et Firebase Authentication
Définir vos structures de données et de règles
La façon dont vous structurez vos données peut avoir une incidence sur la façon dont vous structurez et pour implémenter vos règles. Lorsque vous définissez vos structures de données, leur impact sur la structure de votre Rules.
Par exemple, dans Cloud Storage, vous pouvez inclure un champ qui indique un rôle spécifique pour chaque utilisateur. Ensuite, vos règles peuvent lire ce champ et l'utiliser pour accorder un accès basé sur des rôles. Vous pouvez également créer une base de données Cloud Firestore, stocker des critères d'accès dans des documents Cloud Firestore, puis accéder à ces documents à partir de Cloud Storage Security Rules.
Lorsque vous définissez vos architectures de données et de règles, gardez à l'esprit la façon dont les règles sont appliquées en cascade ou non, en fonction de votre produit. Avec Realtime Database, les règles fonctionnent de haut en bas, les règles plus superficielles remplaçant les règles plus profondes. Si un accorde des autorisations de lecture ou d'écriture sur un chemin particulier, elle accorde aussi l'accès à tous les nœuds enfants qu'il contient. En revanche, avec Cloud Firestore et Cloud Storage : les règles ne s'appliquent qu'à certains niveaux de la hiérarchie des données. et vous écrivez des règles explicites pour contrôler l'accès à différents niveaux.
Accéder à vos règles
Pour afficher votre Rules existante, utilisez la CLI Firebase ou la Firebase. Veillez à modifier vos règles en utilisant la même méthode, de manière cohérente, pour éviter d'écraser par erreur des mises à jour. Si vous ne savez pas si vos règles définies localement reflètent les mises à jour les plus récentes, la console Firebase affiche toujours la version la plus récente de votre Firebase Security Rules.
Pour accéder à vos règles depuis la console Firebase, sélectionnez votre puis cliquez sur Stockage : Cliquez sur Rules une fois dans la base de données ou le bucket de stockage approprié.
Pour accéder à vos règles à partir de la CLI Firebase, accédez à de règles indiqué dans votre fichier firebase.json.
Écrire des règles de base
Lorsque vous développez votre application et que vous comprenez Rules, essayez d'implémenter Rules pour répondre à quelques cas d'utilisation de base, y compris les suivants :
- Propriétaire de contenu uniquement:limitez l'accès au contenu par utilisateur.
- Accès mixte:l'utilisateur restreint l'accès en écriture, mais autorise l'accès public en lecture.
- Accès basé sur les attributs : permet de limiter l'accès à un groupe ou à un type d'utilisateur.
Tester vos règles
Si vous configurez votre Firebase Security Rules dans la console Firebase, vous pouvez utiliser dans Firebase Rules Playground pour valider rapidement comportemental. Toutefois, nous vous recommandons de procéder à des tests plus approfondis avec Local Emulator Suite avant de déployer vos modifications en production.
Déployer des règles
Utilisez la console Firebase ou la CLI Firebase pour déployer vos règles à la production. Suivez les étapes décrites dans la section Gérez et déployez Firebase Security Rules.