O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Entender as regras de segurança do Firebase para o Cloud Storage

Tradicionalmente, a segurança tem sido uma das partes mais complexas do desenvolvimento de apps. Na maioria dos apps, os desenvolvedores precisam criar e executar um servidor que realize a autenticação (quem o usuário é) e a autorização (o que um usuário pode fazer). A autenticação e a autorização são difíceis de configurar, mais difíceis ainda de otimizar e essenciais para o sucesso do seu produto.

Da mesma maneira que o Firebase Authentication facilita a autenticação dos usuários, as regras de segurança do Firebase para Cloud Storage simplificam a autorização desses usuários e a validação das solicitações. Com as regras de segurança do Storage, você gerencia esses processos complexos por meio da especificação de permissões com base no caminho. Com apenas algumas linhas de código, você pode escrever regras de autorização que restringem as solicitações do Google Cloud Storage a um determinado usuário ou limitam o tamanho de um upload.

O Firebase Realtime Database tem um recurso semelhante, chamado regras do Firebase Realtime Database.

Authentication

Saber quem são seus usuários é uma parte importante da criação de um app. Com o Firebase Authentication, você tem uma solução específica no lado do cliente para uma autenticação, fácil de usar e segura. As regras de segurança do Firebase para Cloud Storage estão vinculadas ao Authentication para definir a segurança baseada no usuário. Quando um usuário é autenticado com o Firebase Authentication, a variável request.auth nas regras de segurança do Storage se torna um objeto que contém o ID exclusivo do usuário (request.auth.uid) e as demais informações do usuário no token (request.auth.token). Quando o usuário não é autenticado, request.auth é null. Isso permite que você controle o acesso aos dados de maneira segura para cada usuário. Saiba mais na seção Autenticação.

Autorização

A identificação do usuário é apenas uma parte do processo de segurança. Uma vez identificado, é preciso ter uma maneira de controlar seu acesso aos arquivos no Google Cloud Storage.

O Google Cloud Storage permite que você especifique regras de autorização por arquivo e por caminho que estejam nos nossos servidores e determine o acesso aos arquivos no seu app. Por exemplo, as regras de segurança padrão do Storage exigem o Firebase Authentication para executar qualquer operação read ou write em todos os arquivos:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

É possível editar essas regras selecionando um app do Firebase no Console do Firebase e visualizando a guia Rules da seção Armazenamento.

Validação de dados

As regras de segurança do Firebase para o Cloud Storage também podem ser usadas para validar dados, incluindo validação do nome e do caminho do arquivo, bem como propriedades de metadados do arquivo, como contentType e size.

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

Próximas etapas