Noções de segurança
Segurança no Base44: o que um scan aponta e o que é seu para corrigir
Segurança no Base44 em 5.438 apps escaneados: três achados em quase todos são da plataforma, o source map é o selo do Base44, e a sua parte é uma lista curta.

Em resumo
- A segurança no Base44 é decidida sobretudo pela plataforma. Um scan de um app do Base44 traz os mesmos três achados em quase todos: cabeçalhos faltando, um cabeçalho CORS curinga e um source map publicado.
- Em 16 de setembro de 2026 voltamos para ler o que esses source maps contêm. Todo map que respondia pertencia ao script do selo do Base44. O código do dono saiu sem map em todos os apps que abrimos.
- A sua parte é curta: qualquer chave colada no app (encontrada em 2% dos apps do Base44), as regras de permissão das suas tabelas e tudo o que você conectou por conta própria. As duas notas D entre 5.438 apps vieram dessa lista.
Você escaneou seu app do Base44 e o relatório voltou com um B e três linhas âmbar embaixo: cabeçalhos de segurança faltando, uma API aberta a qualquer site, e o seu código-fonte original publicado. Ou alguém técnico olhou por você e disse as mesmas três coisas com uma voz mais preocupada. Para um app cujo código você nunca leu, a última é a que mais pesa.
Aqui está a parte que guia após guia sobre segurança no Base44 erra: quase toda linha desse relatório fala do Base44. Três dos quatro achados que aparecem em quase todo app são definidos pela plataforma, para todos os apps que ela hospeda. E um dos três é uma frase que o nosso próprio scan formula errado. Este artigo existe porque voltamos para ler o que ele tinha encontrado.
Pense no seu app como um apartamento em um prédio que pertence ao Base44. Um scan lê o prédio da rua. A fechadura da porta de entrada, a placa em cima, a regra sobre quem pode olhar pelas janelas: quem decidiu isso foi o dono do prédio, e todo apartamento compartilha. O que você levou para dentro é uma lista mais curta, e o resto deste artigo percorre o relatório linha por linha para dizer o que é de quem.
O que um scan de segurança no Base44 encontra em quase todo app
Três achados em quase todos, um quarto em cerca da metade, e os quatro decididos pelo Base44.
Em agosto de 2026 rodamos as mesmas nove verificações em 30.998 apps vibe-coded no ar, 5.438 deles publicados no Base44. Todos os 5.438 estavam sem cabeçalhos de segurança. 5.417 responderam a uma requisição vinda de um site inventado com um cabeçalho CORS curinga. 3.229 deles, 59%, serviam um source map. 2.705 tinham um endereço, nomeado no próprio código do app, que respondia a uma requisição sem login e devolvia dados.
| Ferramenta | Apps | Source map publicado | Achado CORS | Uma chave no bundle | Nota D ou F |
|---|---|---|---|---|---|
| Base44 | 5.438 | 3.229 (59%) | 5.418 (99%) | 103 (2%) | 2 |
| Lovable | 18.554 | 225 (1%) | 8 (menos de 1%) | 822 (4%) | 407 |
| Replit | 3.042 | 168 (6%) | 1.129 (37%) | 219 (7%) | 9 |
| Bolt | 1.123 | 13 (1%) | 5 (menos de 1%) | 75 (7%) | 15 |
| v0 | 1.790 | 0 | 0 | 0 | 0 |
Cada porcentagem é sobre os apps em que aquela verificação conseguiu resposta, e é por isso que as bases diferem um pouco da contagem de apps. Uma verificação que não conseguiu alcançar um app deixa esse app de fora. Ele nunca conta como limpo.
Leia a linha do Base44 contra a linha do Lovable. No Lovable, os dois primeiros achados quase nunca aparecem, porque a hospedagem do Lovable define os dois ao contrário. No Base44 eles aparecem quase sempre. Uma coluna tão uniforme em milhares de apps cujos donos nunca conversaram entre si é a cara de uma configuração de plataforma vista de fora. Ninguém escolheu isso no próprio app.
As duas últimas colunas são decididas dentro de cada app, e contam a outra metade. Uma chave no código comprimido apareceu em 2% dos apps do Base44 contra 4% dos do Lovable, e 2 apps do Base44 entre 5.438 tiraram D, contra 407 apps do Lovable entre 18.554. Esses dois apps do Base44 estão na última seção.
O achado de source map em um app do Base44 é o selo
Todo source map que respondia nos apps do Base44 que reabrimos pertencia ao script do selo do Base44. Nenhum deles continha o código do dono.
Um source map é um arquivo que a ferramenta de build escreve ao lado do JavaScript comprimido que o seu site serve. Ele guarda os arquivos originais, seus nomes e cada comentário, para que um erro possa apontar a linha que você escreveu em vez do caractere 48.000 de uma única linha enorme. Quando o map está publicado, qualquer pessoa que aperte F12 lê o projeto como ele aparecia no editor, e nosso artigo anterior explica o que isso custa em um app cujo map é o seu.
No Base44 o map é de outra pessoa. Em 16 de setembro de 2026 voltamos a 30
apps que o nosso scan de agosto tinha marcado e lemos o que cada map continha.
Em 27 deles o único map que respondia era /static/js/badge.js.map, o map do
pequeno script que desenha o selo do Base44 na página, e o que ele revela é o
código do Base44 para esse selo. Nos outros 3, nenhum map respondeu. Em nenhum
dos 30 um map cobria os arquivos do dono. Esses arquivos saíram comprimidos e
sem map em todos os apps que abrimos, o primeiro arquivo que a página carrega e
cada pedaço que ela carrega depois.
Então os 59% contam outra coisa que não código publicado. Dos 30 apps marcados, 27 dos 28 que respondiam ainda carregam o script do selo na página, e de 30 apps que nunca foram marcados, 29 não carregam. O número que se lê como «três em cada cinco apps do Base44 publicam seu código» está mais perto de «três em cada cinco apps do Base44 mostram o selo».
Isso deixa uma linha do nosso próprio relatório pela qual responder. Ela diz «Seu código-fonte original está publicado», e em um app do Base44 ela é verdadeira para um arquivo e errada sobre o seu app. A verificação fez o que foi construída para fazer: seguir o endereço no fim de um script e contar um map que responde. Aqui o script é do dono do prédio. No Lovable, no Replit e no Bolt a mesma linha quer dizer o que diz. De 11 apps marcados dessas ferramentas que reabrimos, 9 serviam um map das próprias páginas e componentes do dono, e nos outros 2 nenhum map respondia mais.
O que isso significa para você é que nada seu está nesse map. A verificação que vale a pena é a outra: se algo que você colou no app está no arquivo comprimido que todo visitante já recebe. Isso vem mais abaixo.
O nosso scan gratuito lê o seu app do Base44 no ar, de fora, todas as nove verificações, em uns 20 segundos e sem conta, e escreve «Não foi possível verificar» para tudo o que não conseguiu responder, em vez de um sinal de certo: escaneie o seu app.
O CORS curinga: o Base44 define, e nada privado responde atrás dele
Você não pode mudá-lo, e nos apps do Base44 que olhamos não há dado privado atrás dele.
O achado é uma linha nas respostas do seu servidor,
Access-Control-Allow-Origin: *, que diz ao navegador de um visitante que uma
página de qualquer outro site pode ler aquela resposta. A documentação do
Base44 diz de onde ela vem (lida em 16 de setembro de 2026): «Per-app CORS
configuration is not currently available. Base44 manages CORS at the platform
level.» Todo app da plataforma envia essa linha, e foi assim que 5.417 apps de
5.419 acabaram com o mesmo achado.
Se um curinga importa depende do que responde atrás dele, e o artigo mais longo explica por quê. A versão curta: o cabeçalho chega depois que a resposta já foi enviada, e só um navegador lê esse cabeçalho, então estreitá-lo impediria as páginas de outros sites de lerem o seu app, e mais ninguém. O que está atrás dele em um app do Base44 é o próprio app, a página, o código comprimido, o selo, e tudo isso todo visitante baixa de qualquer jeito.
O quarto achado é onde um curinga importaria. Em 2.705 apps do Base44, cerca
da metade, um endereço nomeado no código do app respondia a uma requisição sem
login e devolvia dados. Reabrimos 12 deles em 16 de setembro. Em seis, nada
respondia mais. Nos outros seis o endereço que respondia era o mesmo toda vez,
/api/consent/config, e o que ele devolve são as configurações de
consentimento de cookies do app: se um aviso de consentimento está ligado,
quais regras regionais valem, por quantos meses a resposta fica guardada. É
configuração. Não tem linha de ninguém ali.
Os seus dados não viajam por esse caminho no Base44. O seu app pergunta ao backend do Base44, o backend aplica as regras de permissão que você definiu em cada tabela, e a resposta volta pela mesma porta. Um scan de fora não consegue ver essas regras de jeito nenhum, e é por isso que o guia do Base44 gasta seu tempo com o que um estranho consegue alcançar, e deixa as suas regras com você.
O que é seu em um app do Base44
Uma lista curta, e as duas notas D da varredura vieram dela.
Uma chave que você colou. 103 dos 5.438 apps do Base44, 2%, serviam algo com cara de chave no código que todo visitante baixa. 95 deles eram chaves de API do Google, que normalmente precisam de uma restrição no Google Cloud, e não de rotação. Uma era uma chave secreta do Stripe, e esse app tirou D. O Base44 guarda as próprias credenciais no servidor dele, então uma chave no seu bundle é uma que você ou a ferramenta adicionou para uma função: um mapa, uma tag de análise, um formulário de pagamento. Saber de que tipo ela é se lê em um minuto, e uma secreta é rotacionada onde foi emitida antes de sair do código.
As regras de permissão das suas tabelas. O Base44 chama de data access rules, e elas decidem quem pode ler e editar cada tipo de registro. Ninguém de fora consegue testá-las, nós incluídos, e esse é o único lugar em que um scan externo tem que deixar um vazio. O próprio scan de segurança do Base44 lê essas regras, e a documentação dele diz que o scan está disponível em todos os planos, inclusive o gratuito.
Tudo o que você conectou por conta própria. O outro D da varredura era um app do Base44 com um projeto Supabase próprio, e dentro dele uma tabela com nome de dado pessoal que respondia a uma requisição sem login. Conecte o seu próprio banco e as regras por linha de sempre valem por inteiro, porque esse projeto responde à internet diretamente.
O que você pode mudar de dentro do Base44
Dois cabeçalhos, as regras das suas tabelas e as suas chaves. O resto é definido para todos os apps da plataforma.
A documentação do Base44 lista o que é seu para ligar (lida em 16 de setembro
de 2026). No painel do seu app, em Security e depois no ícone de
configurações, você pode ligar dois cabeçalhos de segurança. Prevent
Embedding define X-Frame-Options, que impede o seu app de ser mostrado
dentro da página de outro site. Restrict Browser Features define
Permissions-Policy, que limita o que o seu app pode pedir ao navegador,
câmera e localização inclusas. Se as pessoas fazem login no seu app e podem
fazer algo de consequência com um clique, ligue o primeiro. A mesma página diz
que Content-Security-Policy e Strict-Transport-Security «are not
configurable at the individual app level». Isso é a maior parte do achado de
cabeçalhos, e está fora das suas mãos.
O próprio scan do Base44 cobre a parte de dentro: problemas de permissão de dados, segredos expostos, funções de backend sem verificação de login, dependências e, do plano Builder para cima, vulnerabilidades no código. A documentação dele não menciona source maps nem o cabeçalho CORS, o que é justo, porque os dois pertencem à plataforma. Um scan de fora cobre o que é entregue ao navegador de um visitante, e em um app do Base44 é ali que a lista é mais curta.
| O que o relatório diz | Quem define | O que fazer |
|---|---|---|
| Cabeçalhos de segurança faltando | Base44, com dois interruptores para você | Ligue Prevent Embedding se as pessoas fazem login. Deixe o resto. |
| API aberta a qualquer site | Base44 | Nada. Olhe em vez disso o que responde atrás dele. |
| Código-fonte original publicado | O script do selo do Base44 | Nada. O map contém o código do Base44 para o selo. |
| Um endereço responde sem login | Base44, em /api/consent/config | Leia o que ele devolve. Configurações de consentimento são públicas de propósito. |
| Uma chave no bundle | Você | Rotacione uma chave secreta na origem. Restrinja uma chave do Google. |
| Uma tabela legível | Você, se conectou o seu próprio banco | Row Level Security em toda tabela que guarda pessoas. |
O que fazer agora
O que fazer
- Leia as três linhas de plataforma do seu relatório como do Base44, e depois leia o resto.
- Aperte F12 no seu app no ar e abra a aba Sources. Nenhuma pasta com os seus próprios arquivos quer dizer nenhum map do seu código, diga o relatório o que disser.
- Encontre cada chave no app e leia o prefixo dela. Uma secreta é rotacionada onde foi emitida e depois removida do código, nessa ordem.
- Ligue Prevent Embedding em Security se os seus usuários fazem login.
- Abra Data, escolha uma tabela, depois Permissions, e leia a regra de toda tabela que guarda pessoas.
- Se você conectou o seu próprio projeto Supabase, ligue o Row Level Security em toda tabela dele e confira se ele filtra de verdade.
Publicar no Base44 é um clique na barra de cima, e nada entre esse clique e a internet relê o app procurando uma chave colada para fazer uma função funcionar. Um scan que você rodou mês passado descreve o app do mês passado.
O Reeve Monitor foi feito para isso. Ele roda de novo todas as nove verificações a cada hora em até três apps, vigia a disponibilidade a cada 60 segundos, avisa você quando um resultado muda em vez de esperar você olhar, e envia um relatório mensal. Custa $12 por mês no preço de lista, com sete dias grátis antes de cobrar; a página de preços às vezes fica abaixo do valor daqui e nunca acima. O Monitor vigia e nada mais, o que para um app do Base44 é a metade que encaixa: o Care, nosso plano de backup, só faz backup de projetos Supabase, e um app do Base44 guarda os dados dentro do Base44, a menos que você tenha conectado um projeto próprio.
O guia em linguagem simples para esta plataforma é Seu app do Base44 é seguro?, e o checklist de segurança de 10 minutos cobre o que vale a pena confirmar em qualquer app recém-lançado, seja qual for a ferramenta que o construiu.
Perguntas frequentes
Meu scan diz que meu app do Base44 publica o código-fonte original. É verdade?
Nos apps do Base44 que reverificamos em setembro de 2026, não. O único source map que respondia pertencia ao script do selo do Base44, e ele contém o código do Base44 para esse selo. Os seus próprios arquivos saíram comprimidos e sem map em todos os apps que abrimos. A mesma linha em um app de outra ferramenta geralmente quer dizer o que diz, e lá ela merece leitura.
Posso desligar o CORS curinga em um app do Base44?
Não. A documentação do Base44 diz que a configuração de CORS por app não está disponível e que a plataforma cuida disso. O que você decide é o que os endereços do seu app devolvem a uma requisição sem login, e é ali, de todo modo, que o cabeçalho faria diferença. Nos apps do Base44 que reabrimos, o único endereço que respondia sem login devolvia configurações de consentimento de cookies.
O Base44 é menos seguro que o Lovable?
Um scan não consegue ranquear ferramentas, e essas duas têm formatos diferentes. Um app do Base44 traz mais achados, e quase todos são configurações da plataforma que não expõem nada seu. Um app do Lovable fala direto com o banco Supabase dele, então a configuração que mais vaza dados, uma tabela sem regras por linha, está ao alcance de quem constrói no Lovable e não de quem constrói no Base44. Duas notas D entre 5.438 apps do Base44 contra 407 entre 18.554 apps do Lovable é essa diferença em números. Isso não diz nada sobre o seu app até você escaneá-lo.
O que eu posso mudar de dentro do Base44?
Dois cabeçalhos de segurança (Prevent Embedding e Restrict Browser Features, em Security no painel do seu app), as regras de permissão de cada tabela, quais funções de backend exigem um usuário logado e quais chaves você cola no app. CORS, Content-Security-Policy e Strict-Transport-Security são definidos pela plataforma para todos os apps, e a documentação do Base44 diz isso.
Um source map público expõe minhas chaves de API?
Um map expõe código, e uma chave que está no código já estava no arquivo comprimido que todo visitante baixa. Em um app do Base44 o único map que encontramos pertence ao selo, então a pergunta de verdade é se existe alguma chave no seu bundle. O nosso scan lê o bundle para isso, separadamente. Nos apps do Base44 as chaves que ele encontra são quase sempre chaves de API do Google, que normalmente precisam de uma restrição definida no Google Cloud, e não de rotação.