Firebase Security Rules offre 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 Firebase Security Rules
Avant de commencer à écrire des règles, prenez le temps d'examiner le langage Firebase Security Rules spécifique aux produits Firebase que vous utilisez.
Realtime Database utilise une syntaxe de type JavaScript et une structure JSON pour son Rules. Cloud Firestore et Cloud Storage utilisent un sur-ensemble du langage CEL (Common Expression Language) qui s'appuie sur les instructions match
et allow
, qui définissent une condition d'accès à un chemin d'accès défini.
En savoir plus sur la langue Firebase Security Rules
Configurer Authentication
Si vous ne l'avez pas encore fait, identifiez vos utilisateurs avec Firebase Authentication. Firebase Authentication est compatible avec 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 les structures de vos données et règles
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 Cloud Firestore, 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 que si une règle accorde l'accès à un ensemble de données, Firebase Security Rules accorde l'accès à cet ensemble de données. En d'autres termes, vous ne pouvez pas affiner l'accès à un sous-chemin si vous avez accordé l'accès à un niveau supérieur de votre hiérarchie de données.
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 ne savez pas si 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 votre Firebase Security Rules.
Pour accéder à vos règles depuis la console Firebase, sélectionnez votre projet, puis accédez à Realtime Database, Cloud Firestore ou Stockage. Cliquez sur Règles une fois que vous êtes dans la base de données ou le bucket de stockage appropriés.
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 quelques Règles de sécurité de base, y compris les cas d'utilisation 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
Pour valider entièrement le comportement de votre application et vérifier vos configurations Firebase Security Rules
, utilisez l'émulateur Firebase pour exécuter et automatiser des tests unitaires dans un environnement local.
Si vous configurez votre Firebase Security Rules dans la console Firebase, vous pouvez utiliser le simulateur de règles Firebase pour valider rapidement le comportement. Toutefois, nous vous recommandons de tester plus en détail avec l'émulateur Firebase 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 Firebase Security Rules.