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

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 la langue 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. Cloud Storage s'appuie sur un sur-ensemble du langage CEL (Common Expression Language) qui repose sur des instructions match et allow qui définissent une condition d'accès à un chemin d'accès défini.

Commencez par apprendre la syntaxe de base du langage Firebase Security Rules.

Configurer Authentication

Si ce n'est 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 à Firebase Security Rules pour fournir des fonctionnalités de validation complètes.

Vous pouvez configurer des informations d'authentification personnalisées supplémentaires pour votre application.

En savoir plus sur Firebase Security Rules et Firebase Authentication

Définir les structures de vos données et de vos 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, tenez compte des implications qu'elles peuvent avoir sur votre structure Rules.

Par exemple, dans Cloud Storage, 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. 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 une règle accorde des autorisations de lecture ou d'écriture à un chemin d'accès particulier, elle accorde également l'accès à tous les nœuds enfants sous celui-ci. En revanche, avec Cloud Firestore et Cloud Storage, les règles ne s'appliquent qu'aux 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éder à vos règles

Pour afficher votre Rules existante, utilisez la CLI Firebase ou la console Firebase. Veillez à modifier vos règles de manière cohérente, en utilisant la même méthode, pour éviter d'écraser par erreur les 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 projet, puis, dans le panneau de navigation de gauche, cliquez sur Storage (Stockage). Cliquez sur Rules une fois que vous êtes dans la base de données ou le bucket de stockage appropriés.

Pour accéder à vos règles à partir de la CLI Firebase, accédez au fichier de règles spécifié 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 du contenu uniquement:limite l'accès au contenu par l'utilisateur.
  • Accès mixte:limitez l'accès en écriture par l'utilisateur, mais autorisez l'accès en lecture public.
  • 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 l'espace de test dédié aux règles Firebase pour valider rapidement le comportement. 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 en production. Suivez la procédure décrite dans Gérer et déployer Firebase Security Rules.