Não se esqueça de corrigir os resultados do Security CheckerCertifique-se de tratar os resultados do Security Checker integrado da Lovable antes de publicar seu app online. O Security Checker verifica automaticamente seu app e fornece recomendações valiosas para melhorar a segurança.
Entendendo a arquitetura do Lovable
- Frontend: aplicação TypeScript/React
- Backend: Supabase Edge Functions (funções serverless)
- Database: Supabase (PostgreSQL com recursos em tempo real)
Segurança de front-end: nunca confie no código do lado do cliente
A regra de ouro: código de frontend é público
- Nunca armazene segredos no código de frontend - chaves de API, senhas ou configurações sensíveis
- Nunca faça validação no código de frontend - a validação no lado do cliente pode ser burlada
- Nunca confie em dados do frontend - sempre valide no lado das Edge Functions
Erros comuns de segurança no front-end
Exemplos de instruções de IA para validar e aprimorar a segurança do frontend
Segurança do backend: mova a lógica de negócios para Edge Functions
Trate Edge Functions como sua camada de API
- Autenticação e autorização
- Validação e sanitização de dados
- Lógica de negócios e fluxos de trabalho
- Integração com serviços externos
- Processamento de dados sensíveis
Boas práticas para Edge Functions
O que as Edge Functions devem fazer
- Sempre verifique se os usuários são realmente quem dizem ser antes de permitir que executem ações
- Verifique se os usuários têm as permissões corretas para operações específicas
- Nunca confie que alguém está logado só porque diz que está
- Verifique todos os dados recebidos para garantir que estejam no formato correto
- Remova qualquer conteúdo potencialmente nocivo das entradas de usuário
- Certifique-se de que os dados atendem às suas regras de negócio antes de processá-los
- Implemente processos de negócio complexos, como processamento de pedidos, cálculos de pagamento ou registro de usuários
- Gerencie relacionamentos entre diferentes conjuntos de dados
- Coordene várias etapas em uma única operação
- Conecte-se com segurança a serviços de terceiros, como processadores de pagamento, provedores de e-mail ou APIs
- Mantenha chaves de API e credenciais confidenciais em segurança
- Trate erros e timeouts de forma adequada
- Processe informações pessoais, dados financeiros ou outros conteúdos sensíveis
- Aplique criptografia ou outras medidas de segurança quando necessário
- Registre eventos importantes para auditoria de segurança
Benefícios de segurança das Edge Functions
Exemplo de instruções de IA para Edge Functions seguras
Segurança do banco de dados: mantenha o RLS simples e implemente-o desde o início
Row Level Security (RLS) no Lovable
Padrões comuns de RLS em apps da Lovable
- Usuários devem ver apenas seu próprio perfil, configurações e dados pessoais
- Padrão: “Usuários só podem acessar seus próprios dados”
- Membros da equipe podem ver dados de Projeto compartilhados dentro da própria equipe
- Padrão: “Usuários podem acessar dados das equipes às quais pertencem”
- Posts públicos que qualquer pessoa pode ler, mas apenas os proprietários podem editar
- Padrão: “Qualquer pessoa pode ler, apenas os proprietários podem modificar”
- Funcionários da empresa podem acessar dados da empresa
- Padrão: “Usuários podem acessar dados da sua organização”
Revisando o RLS no seu app Lovable
- Revise quais tabelas têm RLS habilitado
- Verifique se as tabelas com dados sensíveis estão protegidas
- Certifique-se de que as tabelas com dados públicos tenham políticas de leitura apropriadas
- Verifique se usuários só podem ver seus próprios dados
- Teste se dados compartilhados estão acessíveis para as pessoas certas
- Confirme que dados públicos estão visíveis para todos
- Tabelas sem RLS habilitado em dados sensíveis
- Políticas permissivas demais que expõem dados em excesso
- Falta de políticas para novas tabelas ou recursos
Exemplos de Prompts de IA para revisão de RLS
Checklist rápida de RLS
- Todas as tabelas sensíveis têm RLS habilitado
- Usuários só podem acessar seus próprios dados pessoais
- Dados compartilhados têm controles de acesso apropriados
- Novas tabelas recebem políticas de RLS automaticamente
- As políticas são simples e fáceis de entender
Segurança de autenticação: mantenha a lógica no lado do servidor
A lógica de autenticação deve ser executada no servidor
- Nunca confie em verificações de autenticação no lado do cliente - usuários podem modificar o código do navegador
- Valide tokens no servidor - sempre verifique a autenticação em Edge Functions
- Mantenha o gerenciamento de sessão no servidor - deixe o Supabase cuidar do armazenamento seguro das sessões
- Nunca exponha segredos de autenticação - chaves de API e tokens nunca devem chegar ao front-end
Fluxo de autenticação seguro
Boas práticas de autenticação
- Sempre verifique a autenticação do usuário em funções de borda antes de processar requisições
- Verifique as permissões e funções do usuário no servidor, não em componentes React
- Valide os tokens de sessão com o banco de dados ou serviço de autenticação
- Use o gerenciamento de sessão nativo do Supabase para armazenamento seguro de tokens
- Exiba a interface com base no estado de autenticação, mas nunca tome decisões de segurança
- Redirecione para a página de login quando as sessões expirarem, mas valide no servidor primeiro
Proteção da área de trabalho: proteja aplicativos internos
Certifique-se de que os apps internos tenham a visibilidade definida como “Workspace”
Para aplicativos que não devem ser acessíveis publicamente:- Defina a visibilidade do Projeto de apps internos como “Workspace” no painel do Projeto
- Verifique se eles não estão publicados na internet
- Use autenticação adequada para todas as ferramentas internas
- Realize auditorias regulares do acesso a aplicativos privados
Resumo das práticas recomendadas de segurança
Fluxo de desenvolvimento
- Comece com a segurança em mente - Implemente RLS e autenticação desde o primeiro dia
- Use o verificador de segurança - Execute regularmente o verificador de segurança do Lovable
- Siga as recomendações - Implemente todas as sugestões de segurança
- Teste minuciosamente - Verifique se as medidas de segurança funcionam conforme o esperado
- Documente as decisões de segurança - Registre as escolhas de segurança e suas justificativas
Auditorias de segurança regulares
- Revisar as permissões das funções de borda
- Auditar políticas de RLS
- Verificar se há segredos expostos
- Verificar fluxos de autenticação
- Testar controles de acesso
Checklist comum de segurança
- Nenhum segredo no código de frontend
- Todas as validações em funções de borda
- Políticas de RLS implementadas e testadas
- Autenticação usando métodos seguros
- Aplicativos internos devidamente protegidos
- Verificação de segurança executada e recomendações aplicadas
- Revisões de segurança realizadas regularmente
Usando o verificador de segurança do Lovable
- Execute o verificador de segurança no painel do seu projeto
- Revise todas as recomendações com atenção
- Implemente as correções sugeridas o quanto antes
- Execute o verificador novamente depois de fazer alterações
- Documente quaisquer exceções com uma justificativa clara