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.
Autenticação
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 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
Comece a desenvolver regras para seus buckets de armazenamento.
Saiba mais sobre como proteger seus dados usando regras de segurança.