Introdução às 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 usar as regras para proteger seus dados e app contra usuários maliciosos. 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 semelhante a JavaScript e uma estrutura JSON.

Comece aprendendo a sintaxe principal da linguagem das regras de segurança do Firebase.

Configurar o Authentication

Caso ainda não tenha feito isso, adicione o Firebase Authentication ao seu app. O Firebase Authentication é compatível com muitos métodos comuns de autenticação e se integra às regras de segurança do Firebase para fornecer recursos de verificação abrangentes.

É possível configurar outras informações de autenticação 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

Definir dados de segurança

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 Realtime Database, é 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-se de que as regras são aplicadas ou não em cascata, dependendo do seu produto. Com o Realtime Database, as regras funcionam de cima para baixo, com regras em níveis menos profundos que substituem regras de níveis mais profundos. Se uma regra conceder permissões de leitura ou gravação em um caminho específico, ela também vai conceder acesso a todos os nós filhos nesse caminho. Por outro lado, com o Firestore e o Cloud Storage, as regras se aplicam apenas aos níveis especificados da hierarquia de dados, e você escreve regras explícitas para controlar o acesso a níveis diferentes.

Acessar as regras

Para visualizar as regras, use a 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 suas regras no Console do Firebase, selecione seu projeto e, no painel de navegação à esquerda, clique em Realtime Database. Clique em Regras quando estiver no banco de dados ou no bucket correto.

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

Escrever regras básicas

Conforme você desenvolve seu app e entende as regras, tente implementá-las para lidar com alguns casos de uso básicos, incluindo o seguinte:

  • 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

Ao configurar suas regras de segurança no Console do Firebase, é possível usar o Firebase Rules Playground para validar rapidamente o comportamento. No entanto, recomendamos testes mais detalhados com o Pacote de emuladores locais antes de implantar suas alterações na produção.

Implantar regras

Use o Console do Firebase ou a CLI do Firebase para implantar as regras na produção. Siga as etapas descritas em Gerenciar e implantar as regras de segurança do Firebase.