O gancho
Proteger um projeto Supabase requer uma abordagem multicamadas com foco no gerenciamento de chaves API, segurança de banco de dados e permissões de armazenamento. [S1] Segurança em nível de linha configurada incorretamente (RLS) ou chaves confidenciais expostas podem levar a incidentes significativos de exposição de dados. [S2] [S3]
O que mudou
Esta pesquisa consolida os principais controles de segurança para ambientes Supabase com base nas diretrizes oficiais de arquitetura. [S1] Centra-se na transição de configurações de desenvolvimento padrão para posturas reforçadas de produção, especificamente em relação aos mecanismos de controle de acesso. [S2] [S3]
Quem é afetado
Os aplicativos que utilizam Supabase como backend como serviço (BaaS) são afetados, especialmente aqueles que lidam com dados específicos do usuário ou ativos privados. [S2] Os desenvolvedores que incluem a chave service_role em pacotes do lado do cliente ou não conseguem ativar RLS correm alto risco. [S1]
Como funciona o problema
Supabase aproveita a segurança em nível de linha do PostgreSQL para restringir o acesso aos dados. [S2] Por padrão, se RLS não estiver habilitado em uma tabela, qualquer usuário com a chave anon — que geralmente é pública — poderá acessar todos os registros. [S1] Da mesma forma, o armazenamento Supabase requer políticas explícitas para definir quais usuários ou funções podem executar operações em depósitos de arquivos. [S3]
O que um invasor obtém
Um invasor que possui uma chave pública API pode explorar tabelas sem RLS para ler, modificar ou excluir dados pertencentes a outros usuários. [S1] [S2] O acesso não autorizado a buckets de armazenamento pode levar à exposição de arquivos privados de usuários ou à exclusão de ativos críticos de aplicativos. [S3]
Como FixVibe testa isso
FixVibe agora cobre isso como parte de suas verificações Supabase. baas.supabase-security-checklist-backfill analisa metadados de bucket de armazenamento públicos Supabase, exposição anônima de listagem de objetos, nomenclatura de bucket confidencial e sinais de armazenamento não vinculados do limite anon público. As verificações ao vivo relacionadas inspecionam a exposição da chave da função de serviço, a postura Supabase REST/RLS e as migrações SQL do repositório para RLS ausentes.
O que consertar
Sempre habilite a segurança em nível de linha nas tabelas do banco de dados e implemente políticas granulares para usuários autenticados. [S2] Certifique-se de que apenas a chave 'anon' seja usada no código do lado do cliente, enquanto a chave 'service_role' permanece no servidor. [S1] Configure o controle de acesso ao armazenamento para garantir que os buckets de arquivos sejam privados por padrão e o acesso seja concedido somente por meio de políticas de segurança definidas. [S3]
