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, o Firebase Security Rules para Cloud Storage facilita a autorização de usuários e a validação de solicitações. As Cloud Storage Security Rules gerenciam a complexidade para que você especifique as permissões com base no caminho. Com apenas algumas linhas de código, você escreve regras de autorização que restringem as solicitações do Cloud Storage a um determinado usuário ou limitam o tamanho de um upload.
O Firebase Realtime Database tem um recurso semelhante, chamado Firebase Realtime Database Security Rules
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 fácil de usar, segura e no lado do cliente para autenticação. As Firebase Security Rules para Cloud Storage são vinculadas ao Firebase Authentication para segurança baseada no usuário. Quando um usuário é autenticado com o Firebase Authentication, a variável request.auth
em Cloud Storage Security Rules torna-se um objeto que contém o ID exclusivo do usuário (request.auth.uid
) e todos os demais informações do usuário no token (request.auth.token
). Quando o usuário não está 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. Depois de saber quem são eles, é preciso ter uma maneira de controlar o acesso deles aos arquivos no Cloud Storage.
Com o Cloud Storage, você especifica regras de autorização por arquivo e por caminho que estão nos nossos servidores e determina o acesso aos arquivos no seu app. Por exemplo, as Cloud Storage Security Rules padrão 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; } } }
Para editar essas regras, selecione um app do Firebase no console do Firebase e veja a guia Rules
da seção do Storage.
Validação de dados
As Firebase Security Rules para 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 as regras para seus buckets do Cloud Storage.
Saiba mais sobre como proteger seus dados usando regras de segurança.