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, separe um tempo para analisar a linguagem específica delas nos produtos do Firebase que você está usando. O Cloud Storage utiliza um superconjunto da Common Expression Language (CEL) que depende de instruções match e allow que determinam uma condição para acesso em um caminho definido.

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

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 Storage, é uma boa ideia 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. Também é possível criar um banco de dados do Cloud Firestore, armazenar critérios de acesso em documentos do Cloud Firestore e acessar esses documentos nas regras de segurança do Cloud Storage.

Ao definir as arquiteturas de dados e regras, lembre que as regras são aplicadas em cascata ou não 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 mostra a versão implantada mais recentemente 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 Armazenamento. 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.