Premiers pas avec les règles de sécurité Firebase

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 démarrer avec les règles 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 à rédiger des règles, il est utile de prendre le temps d'examiner le langage spécifique des règles de sécurité Firebase pour les produits Firebase que vous utilisez. Cloud Storage exploite un sur-ensemble du langage CEL (Common Expression Language) qui s'appuie sur match et d' allow qui définissent une condition d'accès à un chemin défini.

Commencez par apprendre la syntaxe de base du langage des règles de sécurité Firebase .

Configurer l'authentification

Si vous ne l'avez pas déjà fait, ajoutez l'authentification Firebase à votre application . L'authentification Firebase prend en charge de nombreuses méthodes d'authentification courantes et s'intègre aux règles de sécurité Firebase pour fournir des fonctionnalités de vérification 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 l'authentification Firebase .

Définissez vos structures de données et de règles

La façon dont vous structurez vos données peut affecter la façon dont vous structurez et mettez en œuvre vos règles. Lorsque vous définissez vos structures de données, réfléchissez aux implications qu'elles pourraient avoir sur votre structure de règles.

Par exemple, dans Cloud Storage, vous souhaiterez peut-être inclure un champ indiquant 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. Vous pouvez également créer une base de données Cloud Firestore, stocker les critères d'accès dans des documents Cloud Firestore, puis accéder à ces documents à partir des règles de sécurité Cloud Storage.

Lorsque vous définissez vos architectures de données et de règles, gardez à l’esprit la manière dont les règles se répercutent ou non, en fonction de votre produit. Avec Realtime Database, les règles fonctionnent de haut en bas, les règles moins superficielles remplaçant les règles plus profondes. Si une règle accorde des autorisations de lecture ou d'écriture sur un chemin particulier, 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 s'appliquent uniquement à des niveaux spécifiés de la hiérarchie des données, et vous écrivez des règles explicites pour contrôler l'accès à différents niveaux.

Accédez à vos règles

Pour afficher vos règles existantes, utilisez la CLI Firebase ou la console Firebase. Assurez-vous de modifier vos règles en utilisant la même méthode, de manière cohérente, pour éviter d'écraser par erreur les mises à jour. Si vous n'êtes pas sûr que 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é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 dans le panneau de navigation de gauche, cliquez sur Stockage . Cliquez sur Règles une fois que vous êtes dans la bonne base de données ou le bon compartiment de stockage.

Pour accéder à vos règles à partir de la CLI Firebase, accédez au fichier de règles indiqué dans votre fichier firebase.json .

Écrire des règles de base

Au fur et à mesure que vous développez votre application et que vous comprenez les règles, essayez de mettre en œuvre des règles pour répondre à quelques cas d'utilisation de base , notamment les suivants :

  • Propriétaire de contenu uniquement : restreindre l'accès au contenu par utilisateur.
  • Accès mixte : restreindre l'accès en écriture par utilisateur, mais autoriser l'accès public en lecture.
  • Accès basé sur les attributs : restreindre l'accès à un groupe ou à un type d'utilisateur.

Testez vos règles

Si vous configurez vos règles de sécurité Firebase dans la console Firebase, vous pouvez utiliser Firebase Rules Playground pour valider rapidement le comportement. Cependant, nous recommandons des tests plus approfondis avec Local Emulator Suite avant de déployer vos modifications en production.

Règles de déploiement

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 .