Introdução as regras de segurança do Firebase

As regras de segurança do Firebase fornecem proteção robusta e totalmente personalizável para seus dados no Cloud Firestore, Realtime Database e Cloud Storage. É fácil começar a usá-las e proteger seus dados e seu aplicativo contra usuários mal-intencionados. Basta seguir as etapas deste guia.

Entender a linguagem das regras de segurança do Firebase

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

Saiba mais sobre a linguagem das regras de segurança do Firebase.

Configurar o Authentication

Se você ainda não fez isso, identifique seus usuários com o Firebase Authentication. Esse produto é compatível com muitos métodos de autenticação comuns e se integra às regras de segurança do Firebase 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 regras de segurança do Firebase 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 regras.

Por exemplo, no Cloud Firestore, é possível incluir um campo que denota 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, as regras de segurança do Firebase concederão acesso a ele. 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 visualizar as regras atuais, use a Firebase CLI 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 exibe a versão mais recente implantada das regras de segurança do Firebase.

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 as regras na CLI do Firebase, acesse o arquivo de regras mencionado no arquivo firebase.json.

Escrever regras básicas

Enquanto você estiver desenvolvendo o aplicativo e conhecendo as regras, 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 as regras

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

Ao configurar as regras de segurança no Console do Firebase, é possível usar 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 Firebase CLI para implantar as regras em produção. Siga as etapas descritas em Gerenciar e implantar as regras de segurança do Firebase.