← Voltar ao blog
SegurançaScanaris Team · 2 min de leitura · July 12, 2026

Segurança no Supabase: o que tens de rever antes de lançar

O Supabase dá-te uma base de dados e uma API em minutos, e é aí que está o perigo: a API fica exposta desde o primeiro momento. Se não configuras a segurança, qualquer um com a tua chave pública pode ler e escrever nas tuas tabelas. Isto é o que há para rever.

RLS ativado em TODAS as tabelas

Row Level Security é a barreira principal do Supabase. Sem ela, a chave anon pode consultar tabelas inteiras diretamente do navegador. O erro clássico do vibe coder é criar uma tabela nova à pressa e esquecer-se de ativar RLS.

Revê tabela a tabela no painel: se alguma aparecer sem RLS, está aberta ao público. Ativá-lo também não chega: uma tabela com RLS ativo mas sem policies nega tudo, e uma com uma policy demasiado permissiva não protege nada.

service_role frente a anon

A chave anon é pública e vai no frontend: está pensada para ser controlada por RLS. A chave service_role salta o RLS por completo e tem acesso total. Nunca, jamais, deve aparecer no navegador nem numa variável NEXT_PUBLIC_.

Usa-a só no servidor, em edge functions ou backends de confiança. Se suspeitas que se filtrou, rota-a de imediato a partir do painel.

Policies que refletem mesmo quem pode o quê

Uma policy de true para todos deixa a tabela aberta mesmo com RLS ativo. Escreve policies concretas: que um utilizador leia e edite só as suas próprias linhas, normalmente comparando auth.uid() com a coluna de propriedade. Separa as regras por operação (select, insert, update, delete): às vezes queres permitir ler mas não apagar.

Storage: os buckets também têm regras

O armazenamento de ficheiros usa as suas próprias policies. Um bucket público serve qualquer ficheiro por URL a quem a tenha. Decide de forma consciente que buckets são públicos e protege os restantes com policies baseadas no utilizador. Sobe documentos privados a buckets privados, não a um público com nomes difíceis de adivinhar.

Segredos e chaves fora do frontend

Além da service_role, verifica que não há chaves de terceiros (Stripe, correio, IA) incrustadas no JavaScript do cliente. A IA às vezes coloca-as aí para fazer algo funcionar depressa, e ficam visíveis para sempre.

O Scanaris revê o teu Supabase por ti

O Scanaris inclui uma auditoria opcional do Supabase que comprova se as tuas tabelas têm RLS e deteta chaves expostas no frontend. É uma comprovação de só leitura sobre o que já é público, e cada achado vem com um prompt pronto a colar na tua IA. Passa-a antes de lançar e saberás se deixaste alguma porta aberta.

Como está o teu site?

Passa-lhe o Scanaris e verifica em 30 segundos, grátis.

Analisar o meu site

Verificações relacionadas

Guias de segurança por stack