Skip to main content
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.
Embora a Lovable AI e ferramentas como o Security Checker identifiquem e evitem uma ampla variedade de problemas de segurança, nem sempre é possível ou realista descobrir ou corrigir automaticamente todos os problemas que podem aparecer depois que um app é lançado na internet. Este guia oferece uma visão mais aprofundada de como os apps da Lovable funcionam nos bastidores, quais são as práticas importantes de segurança que podem ajudar você a proteger os dados dos seus clientes e maneiras de evitar erros comuns.

Entendendo a arquitetura do Lovable

Salvo indicação em contrário, o Lovable gera aplicações com a seguinte arquitetura:
  • Frontend: aplicação TypeScript/React
  • Backend: Supabase Edge Functions (funções serverless)
  • Database: Supabase (PostgreSQL com recursos em tempo real)
Essa separação de responsabilidades é fundamental para manter a segurança. Cada camada tem funções específicas e considerações de segurança próprias.

Segurança de front-end: nunca confie no código do lado do cliente

A regra de ouro: código de frontend é público

Todo código React roda no navegador do usuário e é público por natureza. Os usuários podem inspecionar, modificar ou burlar qualquer código de frontend. Portanto:
  • 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

A forma correta é pedir para o Lovable adicionar uma chave secreta — isso abrirá um formulário e armazenará o segredo com segurança no backend do próprio Lovable.

Exemplos de instruções de IA para validar e aprimorar a segurança do frontend

Para mais instruções, consulte a Prompt Library da Lovable.

Segurança do backend: mova a lógica de negócios para Edge Functions

Trate Edge Functions como sua camada de API

Supabase Edge Functions devem conter toda a sua lógica de negócios, validação e operações sensíveis:
  • 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

Pense nas Edge Functions como os seguranças e gerentes do seu aplicativo. Elas cuidam de todo o trabalho importante que precisa ser feito com segurança, longe das partes voltadas ao público do seu aplicativo.

O que as Edge Functions devem fazer

Autenticação e autorização de usuário
  • 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á
Validação e sanitização de dados
  • 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
Lógica de negócio e fluxos de trabalho
  • 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
Integração com serviços externos
  • 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
Processamento de dados sensíveis
  • 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

Isolamento: Edge Functions são executadas em um ambiente seguro, separado do seu frontend, o que torna muito mais difícil para invasores acessarem código ou dados sensíveis. Segurança centralizada: Todas as verificações de segurança acontecem em um único lugar, facilitando a manutenção e a atualização das políticas de segurança. Sem exposição no lado do cliente: A lógica de negócios sensível nunca chega ao navegador do usuário, onde poderia ser visualizada ou modificada. Validação consistente: Cada requisição passa pelo mesmo processo de validação, garantindo segurança consistente em todo o seu aplicativo.

Exemplo de instruções de IA para Edge Functions seguras

Para mais instruções de IA, consulte a Biblioteca de Prompts de IA da Lovable.

Segurança do banco de dados: mantenha o RLS simples e implemente-o desde o início

Row Level Security (RLS) no Lovable

O Lovable configura automaticamente políticas básicas de RLS para suas tabelas, mas você deve revisá‑las e personalizá‑las com base nas necessidades de segurança do seu app. Pense em RLS como as regras que determinam quem pode ver e modificar quais dados no seu banco de dados. Revisar antecipadamente é fundamental: é muito mais fácil ajustar políticas de RLS quando seu app ainda é novo do que depois que os usuários já criaram dados. Simplicidade é segurança: mantenha as políticas de RLS simples e focadas em controle de acesso aos dados, não em lógica de negócios complexa. As políticas padrão do Lovable geralmente são um bom ponto de partida.

Padrões comuns de RLS em apps da Lovable

Proteção de dados pessoais
  • 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”
Acesso baseado em equipe
  • 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”
Conteúdo público com propriedade
  • 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”
Acesso baseado em organização
  • 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

Verifique suas tabelas
  • 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
Teste os padrões de acesso
  • 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
Problemas comuns a observar
  • 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

Todas as decisões de autenticação, validação de tokens e verificação de usuários devem acontecer no lado do servidor, não no navegador. A autenticação no lado do cliente pode ser facilmente contornada ou manipulada. Princípios fundamentais:
  • 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

Validação no servidor:
  • 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
Tratamento no cliente:
  • 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

  1. Comece com a segurança em mente - Implemente RLS e autenticação desde o primeiro dia
  2. Use o verificador de segurança - Execute regularmente o verificador de segurança do Lovable
  3. Siga as recomendações - Implemente todas as sugestões de segurança
  4. Teste minuciosamente - Verifique se as medidas de segurança funcionam conforme o esperado
  5. 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

Lovable fornece um verificador de segurança integrado para ajudar a identificar possíveis problemas de segurança:
  1. Execute o verificador de segurança no painel do seu projeto
  2. Revise todas as recomendações com atenção
  3. Implemente as correções sugeridas o quanto antes
  4. Execute o verificador novamente depois de fazer alterações
  5. Documente quaisquer exceções com uma justificativa clara
Lembre-se: segurança não é uma tarefa única, mas um processo contínuo. Revise e atualize suas medidas de segurança regularmente, conforme seu aplicativo evolui.