Les règles de sécurité Firebase offrent une protection robuste et entièrement personnalisable pour vos données dans Cloud Firestore, Realtime Database et Cloud Storage. Vous pouvez facilement commencer à utiliser Rules en suivant les étapes de ce guide, en sécurisant vos données et en protégeant votre application contre les utilisateurs malveillants.
Comprendre le langage des règles de sécurité Firebase
Avant de commencer à écrire des règles, prenez le temps de consulter le langage spécifique des règles de sécurité Firebase pour les produits Firebase que vous utilisez. Realtime Database utilise une syntaxe de type JavaScript et une structure JSON pour son Rules.
Commencez par découvrir la syntaxe de base du langage des règles de sécurité Firebase.
Configurer Authentication
Si vous ne l'avez pas déjà fait, ajoutez Firebase Authentication à votre application. Firebase Authentication est compatible avec de nombreuses méthodes d'authentification courantes et s'intègre aux règles de sécurité Firebase 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 les règles de sécurité Firebase et Firebase Authentication
Définir les structures de vos données et règles
Définir les données pour la sécurité
La façon dont vous structurez vos données peut avoir une incidence sur la façon dont vous structurez et implémentez vos règles. Lorsque vous définissez vos structures de données, réfléchissez aux implications qu'elles pourraient avoir sur la structure de votre Rules.
Par exemple, dans Realtime Database, vous pouvez inclure un champ qui indique un rôle spécifique pour chaque utilisateur. Vos règles peuvent ensuite lire ce champ et l'utiliser pour accorder un accès basé sur les rôles.
Lorsque vous définissez vos architectures de données et de règles, gardez à l'esprit la façon dont les règles se propagent ou non, selon votre produit. Avec Realtime Database, les règles fonctionnent de haut en bas, les règles moins spécifiques remplaçant les règles plus spécifiques. Si une règle accorde des autorisations de lecture ou d'écriture à un chemin d'accès spécifique, elle accorde également l'accès à tous les nœuds enfants qui s'y trouvent. En revanche, avec Cloud Firestore et Cloud Storage, les règles ne s'appliquent qu'à des niveaux spécifiques de la hiérarchie des données, et vous devez écrire des règles explicites pour contrôler l'accès aux différents niveaux.
Accéder à vos règles
Pour afficher vos Rules existants, utilisez la CLI Firebase ou la console Firebase. Veillez à modifier vos règles de manière cohérente, en utilisant toujours la même méthode, pour éviter d'écraser des modifications par erreur. Si vous n'êtes pas sûr que vos règles définies localement reflètent les dernières mises à jour, la console Firebase affiche toujours la version la plus récemment déployée de vos règles de sécurité Firebase.
Pour accéder à vos règles depuis la console Firebase, sélectionnez votre projet, puis cliquez sur Realtime Database dans le panneau de navigation de gauche. Cliquez sur Rules une fois que vous êtes dans la bonne base de données ou le bon bucket de stockage.
Pour accéder à vos règles depuis la CLI Firebase, accédez au fichier 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 : restreignez l'accès en écriture par utilisateur, mais autorisez l'accès en lecture public.
- Accès basé sur les attributs : limitez l'accès à un groupe ou à un type d'utilisateur.
Tester vos règles
Si vous configurez vos règles de sécurité Firebase dans la console Firebase, vous pouvez utiliser l'espace de test des règles Firebase pour valider rapidement le comportement. Toutefois, nous vous recommandons de tester plus en détail 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 en production. Suivez les étapes décrites dans Gérer et déployer les règles de sécurité Firebase.