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.