Introdução às regras de segurança do Firebase

As Firebase Security Rules fornecem proteção robusta e completamente personalizável para seus dados no Cloud Firestore, Realtime Database e Cloud Storage. É fácil começar a usar as Rules para proteger seus dados e app contra usuários maliciosos. Basta seguir as etapas deste guia.

Entender a linguagem das Firebase Security Rules

Antes de começar a escrever regras, separe um tempo para analisar a linguagem específica Firebase Security Rules nos produtos do Firebase que você está usando. O Realtime Database usa uma sintaxe semelhante ao JavaScript e uma estrutura JSON para o Rules. Como alternativa, Cloud Firestore e Cloud Storage usam um superconjunto do Common Expression Language (CEL) que depende de instruções match e allow que determinam uma condição de acesso em um caminho definido.

Saiba mais sobre o idioma Firebase Security Rules.

Configurar Authentication

Se você ainda não fez isso, identifique seus usuários com o Firebase Authentication. O Firebase Authentication é compatível com muitos métodos de autenticação comuns e se integra ao Firebase Security Rules para fornecer recursos abrangentes de verificação.

É possível configurar outras informações de autenticação que sejam personalizadas para seu aplicativo.

Saiba mais sobre as Firebase Security Rules e o Firebase Authentication.

Definir suas estruturas de dados e regras

O modo como você estrutura os dados pode afetar a maneira como as regras são estruturadas e implementadas. Ao definir as estruturas de dados, avalie as implicações que elas podem ter na estrutura das Rules.

Por exemplo, no Cloud Firestore, é possível incluir um campo que represente um papel específico para cada usuário. Dessa forma, suas regras poderão ler esse campo e usá-lo para conceder acesso com base em papéis.

Ao definir as arquiteturas de dados e regras, lembre que, se qualquer regra conceder acesso a um conjunto de dados, a Firebase Security Rules também vai conceder. Em outras palavras, não será possível refinar o acesso em um subcaminho se você tiver concedido acesso em um nível mais alto na hierarquia de dados.

Acessar as regras

Para ver as Rules atuais, use a CLI do Firebase ou o console do Firebase. Lembre de editar as regras usando o mesmo método de maneira consistente para evitar substituir as atualizações por engano. Caso você não tenha certeza de que as regras definidas localmente correspondem às atualizações mais recentes, saiba que o console do Firebase sempre mostra a versão implantada mais recentemente das Firebase Security Rules.

Para acessar as regras no console do Firebase, selecione o projeto e navegue até Realtime Database, Cloud Firestore ou Storage. Clique em Regras quando estiver no banco de dados ou no bucket correto.

Para acessar suas regras pela CLI do Firebase, acesse o arquivo de regras mencionado no seu arquivo firebase.json.

Escrever regras básicas

Enquanto você desenvolve seu app e entende as Rules, tente implementar algumas regras básicas de segurança, incluindo os seguintes casos de uso:

  • Somente o proprietário do conteúdo: restringe o acesso ao conteúdo por usuário.
  • Acesso misto: restringe o acesso de gravação por usuário, mas permite acesso de leitura público.
  • Acesso com base em atributos: restringe o acesso a um grupo ou tipo de usuário.

Testar suas regras

Para validar totalmente o comportamento do app e verificar as configurações de Firebase Security Rules
, use o Emulador do Firebase para executar e automatizar testes de unidade em um ambiente local.

Ao configurar as Firebase Security Rules no console do Firebase, use o simulador de regras do Firebase para validar rapidamente o comportamento. No entanto, recomendamos que você faça testes mais detalhados com o emulador antes de implantar suas alterações em produção.

Implantar regras

Use o console do Firebase ou a CLI do Firebase para implantar suas regras na produção. Siga as etapas descritas em Gerenciar e implantar as Firebase Security Rules.