Crítico

Chave service_role do Supabase no bundle

Procura JWTs nos arquivos públicos do deploy e falha se algum tiver a role service_role e emissor (iss) do Supabase.

Por que importa

A chave service_role ignora todas as políticas de RLS. No bundle, ela dá a qualquer visitante acesso de leitura e escrita a todo o banco.

Como corrigir

Troque a chave no painel do Supabase, remova-a do código e use a service_role só no servidor. Ela não pode ficar em variáveis expostas ao navegador, como as que começam com NEXT_PUBLIC_ ou VITE_.

Como conferir a correção

SECRET-001
# Rode na pasta do build (dist, .next/static ou equivalente).
grep -rhoE 'eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+' ./dist \
  | cut -d. -f2 | while read -r p; do echo "$p" | base64 -d 2>/dev/null; echo; done \
  | grep service_role || echo ok

Referências