[{"data":1,"prerenderedAt":810},["ShallowReactive",2],{"blog-pt-is-cursor-ai-safe":3,"blog-index-pt":567},{"id":4,"title":5,"body":6,"category":518,"cover":519,"coverAlt":520,"description":521,"draft":522,"extension":523,"faq":524,"image":543,"keywords":544,"meta":555,"navigation":556,"ogTitle":5,"path":557,"published":558,"seo":559,"stem":560,"tldr":561,"updated":565,"__hash__":566},"blog_pt\u002Fblog\u002Fis-cursor-ai-safe.md","O Cursor AI é seguro? O editor, o código e o app que você publicou",{"type":7,"value":8,"toc":504},"minimark",[9,13,21,24,29,32,54,57,63,67,70,73,84,93,102,111,116,120,123,132,135,157,176,180,183,192,195,198,206,211,215,218,221,244,247,251,254,262,265,370,382,393,397,400,439,443,446,459,463,493],[10,11,12],"p",{},"Você construiu algo no Cursor, funciona, e está prestes a colocar pessoas de\nverdade nele. Em algum momento dessa semana você digitou «o cursor ai é seguro»\nem um buscador, e o que voltou foi uma página sobre as configurações de\nprivacidade do Cursor, uma página sobre se código escrito por IA presta, e uma\npágina sobre um download de cursores de mouse personalizados. Nenhuma delas\ndisse uma palavra sobre o app que você está prestes a publicar.",[10,14,15,16,20],{},"Aqui está a parte que a maioria dessas respostas erra: ",[17,18,19],"strong",{},"«o Cursor AI é\nseguro?» são três perguntas em uma frase só",", e elas têm três respostas\ndiferentes. Duas são sobre o Cursor e os modelos por trás dele. A terceira é\nsobre o que você publicou, e é a que decide se um estranho consegue ler os\ndados dos seus usuários.",[10,22,23],{},"Pense no Cursor como um empreiteiro que você contratou para construir uma\ncasa. Se ele guarda uma cópia das suas plantas é uma pergunta. Se o que ele\nconstrói está dentro das normas é uma segunda. Se as portas trancam depois que\nvocê se mudou é a terceira, e ela continua sendo sua pergunta enquanto você\nmorar ali.",[25,26,28],"h2",{"id":27},"o-cursor-ai-é-seguro","O Cursor AI é seguro?",[10,30,31],{},"Como editor, é uma ferramenta em nuvem comum: um interruptor de privacidade,\numa página de segurança publicada e uma atestação SOC 2 Tipo II. Isso responde\numa das três perguntas, e não a que decide se estranhos conseguem ler os dados\ndos seus usuários.",[33,34,35,42,48],"ol",{},[36,37,38,41],"li",{},[17,39,40],{},"O editor."," Se o Cursor guarda seu código, treina com ele ou passa para\noutra pessoa. Essa é a cópia das plantas com o empreiteiro.",[36,43,44,47],{},[17,45,46],{},"O código."," Se o que a IA escreve é seguro. Essa é a pergunta se a casa\nestá dentro das normas, e ninguém inspeciona isso na entrada.",[36,49,50,53],{},[17,51,52],{},"O app que você publicou."," O que um estranho alcança da rua: uma chave no\ncódigo que um navegador baixa, um banco de dados que responde sem login, um\narquivo que nunca deveria ter tido uma URL. Essas são as portas.",[10,55,56],{},"Nada do lado do Cursor consegue responder a terceira. Nada do nosso consegue\nresponder as duas primeiras.",[58,59],"diagram",{"alt":60,"caption":61,"src":62},"Três painéis lado a lado. O primeiro tem o logo do Cursor com uma nuvem e um cadeado ao lado. O segundo tem um sinal de código com um brilho em cima. O terceiro tem uma página de navegador com três visitantes estendendo a mão para ela e uma lupa desenhada só sobre esse painel.","Três perguntas dentro de uma busca. Um escaneamento de fora lê o terceiro painel e nada dos outros dois.","\u002Fblog\u002Fis-cursor-ai-safe\u002Fthree-questions-1600x700.png",[25,64,66],{"id":65},"o-cursor-guarda-meu-código","O Cursor guarda meu código?",[10,68,69],{},"Pelo tempo que leva para responder você, sim. Depois disso depende de um\ninterruptor.",[10,71,72],{},"O Cursor é uma ferramenta em nuvem. Quando você pergunta qualquer coisa a ele,\nas partes relevantes do seu projeto saem do seu computador, vão para os\nservidores do Cursor e são repassadas a um provedor de modelos (OpenAI,\nAnthropic, Google, o modelo que você escolheu) para serem respondidas. É assim\nque o produto funciona. As plantas precisam chegar ao empreiteiro.",[10,74,75,76,83],{},"O que acontece depois é o interruptor, e a\n",[77,78,82],"a",{"href":79,"rel":80},"https:\u002F\u002Fcursor.com\u002Fdata-use",[81],"nofollow","página de uso de dados"," do Cursor coloca as duas\nposições em um parágrafo só. Com o Privacy Mode ligado, «os Dados do Cliente\nnão serão usados para treinamento pelo Cursor» e o Cursor «mantém acordos de\nretenção zero de dados (ZDR) com todos os provedores», ou seja, as empresas que\nrodam os modelos se comprometem a não guardar nada também. Com ele desligado,\no Cursor «pode usar e armazenar dados da base de código, prompts, ações no\neditor, trechos de código e outros dados e ações de código para melhorar\nnossos recursos de IA e treinar nossos modelos».",[10,85,86,87,92],{},"O interruptor está disponível em todos os planos, o gratuito incluído, e um\nadministrador de equipe ou de empresa pode ligá-lo para todo mundo e impedir\nque os membros o desliguem. O próprio\n",[77,88,91],{"href":89,"rel":90},"https:\u002F\u002Fcursor.com\u002Fdocs\u002Fenterprise\u002Fsecurity-hardening",[81],"guia de hardening"," do\nCursor diz que ele vem ligado por padrão em contas Enterprise. Em um plano\nindividual é uma configuração, e essa configuração vale a pena procurar hoje.",[10,94,95,96,101],{},"Mais uma coisa sobre ele, porque já pegou alguém de surpresa. Desde meados de\n2025 existem duas versões: «Privacy Mode», que deixa o Cursor guardar alguns\ndados para recursos como os agentes em nuvem e as memórias, e «Privacy Mode\n(Legacy)», que não guarda nada. Em julho de 2026 um\n",[77,97,100],{"href":98,"rel":99},"https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=48737226",[81],"usuário do Hacker News"," contou\nque entrou no app de iOS e encontrou a conta movida da configuração antiga para\na atual. Um funcionário do Cursor respondeu que o aviso para ativar os agentes\nem nuvem tinha feito isso «sem deixar claro o que significava nem que é difícil\nde desfazer», e que voltar atrás não estava disponível no app. Se você escolheu\na mais rígida, confira se ela ainda está selecionada.",[10,103,104,105,110],{},"Os certificados respondem a uma pergunta mais estreita do que parecem. A\n",[77,106,109],{"href":107,"rel":108},"https:\u002F\u002Fcursor.com\u002Fsecurity",[81],"página de segurança"," do Cursor lista uma\natestação SOC 2 Tipo II, ISO\u002FIEC 27001 e ISO\u002FIEC 42001. Eles significam que um\nauditor externo verificou que o Cursor tem controles sobre como trata os dados\nque guarda, do mesmo jeito que o certificado de seguro de um empreiteiro diz\nque o empreiteiro está segurado. Eles não dizem nada sobre o código que ele\nescreve nem sobre o app que você publica com ele.",[58,112],{"alt":113,"caption":114,"src":115},"À esquerda, uma janela de editor da qual um documento sai por uma seta, atravessa uma nuvem e chega a um servidor à direita. Embaixo da nuvem há um interruptor. Ao lado do interruptor na posição ligada, um cilindro de armazenamento desenhado em linha tracejada, e ao lado dele na posição desligada, um cilindro sólido com um brilho em cima.","Seu código sai da sua máquina a cada solicitação. O interruptor decide se algo fica guardado depois, e se é usado para treinar.","\u002Fblog\u002Fis-cursor-ai-safe\u002Fwhere-your-code-goes-1600x680.png",[25,117,119],{"id":118},"o-que-a-indexação-do-código-envia","O que a indexação do código envia?",[10,121,122],{},"Um índice do seu projeto, guardado nos servidores do Cursor, com os caminhos\ndos arquivos criptografados e o código em si nunca guardado como texto\nlegível.",[10,124,125,126,131],{},"A indexação é como o Cursor responde uma pergunta sobre o projeto inteiro e\nnão só sobre o arquivo que você tem aberto. Ele divide seus arquivos em\npedaços, envia para os servidores do Cursor para virarem embeddings (um resumo\nnumérico do assunto de cada pedaço) e guarda esses embeddings para que, quando\nvocê perguntar «onde tratamos os reembolsos», ele ache os pedaços certos. A\n",[77,127,130],{"href":128,"rel":129},"https:\u002F\u002Fcursor.com\u002Fdocs\u002Fcontext\u002Fcodebase-indexing",[81],"documentação"," do Cursor\ndiz: «Os caminhos dos arquivos são criptografados antes de serem enviados aos\nservidores do Cursor. O conteúdo do código nunca é armazenado em texto puro».\nO que fica do lado deles é um mapa do seu código, e isso é uma coisa diferente\nde uma cópia.",[10,133,134],{},"Duas coisas valem a pena saber sobre o mapa.",[10,136,137,140,141,145,146,149,150,153,154,156],{},[17,138,139],{},"Alguns arquivos ficam de fora por padrão, e você pode acrescentar mais."," O\nCursor pula tudo que está no seu ",[142,143,144],"code",{},".gitignore"," e uma lista padrão que inclui\n",[142,147,148],{},".env*",", o arquivo onde suas chaves secretas costumam morar. Um arquivo\n",[142,151,152],{},".cursorignore"," na raiz do projeto, escrito na mesma sintaxe do ",[142,155,144],{},",\ndeixa qualquer outra coisa que você nomear fora do índice e fora do que é\nmostrado à IA.",[10,158,159,162,163,168,169,171,172,175],{},[17,160,161],{},"O terminal do agente não lê essa lista."," Essa é a ressalva que importa para\nas chaves. A\n",[77,164,167],{"href":165,"rel":166},"https:\u002F\u002Fcursor.com\u002Fdocs\u002Fcontext\u002Fignore-files",[81],"página sobre arquivos de exclusão","\ndo Cursor diz que «as ferramentas de terminal e de servidor MCP usadas pelo\nAgente não conseguem bloquear o acesso ao código regido pelo ",[142,170,152],{},"»,\ne que «a proteção completa não é garantida devido à imprevisibilidade dos\nLLMs». Quando o agente executa um comando na sua máquina, ele consegue ler o\n",[142,173,174],{},".env"," como qualquer comando conseguiria. O arquivo está fora do índice e\ncontinua ao alcance. Se uma chave está na pasta de projeto que você abriu no\nCursor, trate-a como uma chave que o agente consegue ver.",[25,177,179],{"id":178},"o-código-que-o-cursor-escreve-é-seguro","O código que o Cursor escreve é seguro?",[10,181,182],{},"Não por padrão, e isso está medido, embora a medição seja dos modelos que o\nCursor usa e não do Cursor em si.",[10,184,185,186,191],{},"A Veracode, uma empresa que vende testes de segurança de código, passou mais\nde 150 modelos pelas mesmas 80 tarefas de programação, em quatro linguagens,\ncada tarefa com um jeito seguro e um inseguro de fazer o trabalho. A\n",[77,187,190],{"href":188,"rel":189},"https:\u002F\u002Fwww.veracode.com\u002Fblog\u002Fspring-2026-genai-code-security\u002F",[81],"atualização de primavera de 2026","\ndela, publicada em 24 de março de 2026, descobriu que só 55% dos resultados\neram seguros, um número que a Veracode chama de «praticamente idêntico ao de\ndois anos atrás», enquanto a parcela que compilava já tinha passado de 95%. Em\ndois dos quatro tipos de falha os modelos quase nunca escolheram a versão\nsegura: o cross-site scripting, que deixa o texto de um visitante rodar como\ncódigo no navegador de outro, passou 15% das vezes, e a injeção de log, 13%.",[10,193,194],{},"O resumo da própria Veracode é que os modelos «ficaram excelentes em escrever\ncódigo que compila. Falharam em escrever código que é seguro».",[10,196,197],{},"Para você, a pessoa que não escreveu o código, a lacuna entre esses dois\nnúmeros é o achado inteiro. O teste que você faz em um projeto do Cursor é se\nele funciona: você clica pelo app e as coisas certas aparecem. Esses são os\n95%. O teste que ninguém faz é se o código decidiu quem pode ver o quê, e os\n55% dizem que essa decisão foi tomada mais ou menos metade das vezes. Um app\npode passar por completo no primeiro teste e reprovar no segundo, porque uma\npágina que mostra a você os seus pedidos e uma página que mostra a qualquer um\nos pedidos de todo mundo parecem idênticas para a pessoa dona da conta.",[10,199,200,201,205],{},"Onde essa decisão pertence, e por que «carregue os pedidos» nunca a toma\nsozinho, está no meio do ",[77,202,204],{"href":203},"\u002Fis-your-cursor-app-safe","guia do Cursor",".",[58,207],{"alt":208,"caption":209,"src":210},"Duas barras horizontais na mesma escala. A barra de cima, encabeçada por um sinal de certo, percorre quase a largura inteira e termina no número 95 com um sinal de maior na frente. A barra de baixo, encabeçada por um cadeado, para um pouco depois da metade e termina no número 55.","O teste de primavera de 2026 da Veracode com mais de 150 modelos. A barra de cima é código que compilou. A de baixo é código que era seguro.","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcompiles-versus-safe-1600x560.png",[25,212,214],{"id":213},"injeção-de-prompt-em-linguagem-simples","Injeção de prompt, em linguagem simples",[10,216,217],{},"O modelo trata instruções como instruções onde quer que as encontre, inclusive\ndentro de coisas que ele só deveria ler.",[10,219,220],{},"Você diz ao Cursor «resuma esta thread» ou «organize este arquivo», e para\nisso ele lê a thread ou o arquivo. Se a thread contém uma frase escrita para\nparecer uma instrução a uma IA, o modelo pode segui-la, porque não tem um jeito\nconfiável de distinguir a sua voz da voz da página. Isso é injeção de prompt, e\nem um agente de programação, que consegue editar arquivos e executar comandos\nna sua máquina, as consequências vão além de um resumo ruim.",[10,222,223,224,229,230,233,234,239,240,243],{},"Dois casos com nome, ambos contra o Cursor. Em março de 2025 a Pillar Security\npublicou o\n",[77,225,228],{"href":226,"rel":227},"https:\u002F\u002Fwww.pillar.security\u002Fblog\u002Fnew-vulnerability-in-github-copilot-and-cursor-how-hackers-can-weaponize-code-agents",[81],"«Rules File Backdoor»",":\ninstruções escondidas com caracteres Unicode invisíveis dentro de um arquivo\n",[142,231,232],{},".cursor\u002Frules",", o arquivo de configuração que diz ao Cursor como você quer\nseu código escrito. O arquivo parecia limpo no editor e em um diff do GitHub,\ne mandava a IA, em silêncio, adicionar a cada página gerada um script do\ndomínio de um atacante e nunca mencionar isso. A resposta do Cursor foi que\naquilo não era uma vulnerabilidade da plataforma dele e que a responsabilidade\né do usuário. Em agosto de 2025 a Aim Security divulgou a\n",[77,235,238],{"href":236,"rel":237},"https:\u002F\u002Fthehackernews.com\u002F2025\u002F08\u002Fcursor-ai-code-editor-fixed-flaw.html",[81],"CVE-2025-54135",",\nque eles chamaram de CurXecute: uma mensagem em um canal público do Slack, lida\npelo Cursor por meio de um servidor MCP (um plug-in que deixa o agente alcançar\nferramentas externas), conseguia fazer o agente escrever uma entrada na própria\nconfiguração ",[142,241,242],{},"mcp.json"," dele, e o Cursor iniciava essa entrada, executando o\ncomando do atacante, antes de você ter aprovado a edição. O Cursor corrigiu na\nversão 1.3, em 29 de julho de 2025, e agora toda alteração nesse arquivo espera\na sua aprovação.",[10,245,246],{},"O que sobra para você é curto. Um arquivo de regras que você copiou de um\nrepositório ou de um post é código, e ele guia tudo que o agente escreve\ndepois, então leia como código. Mantenha o Cursor atualizado, já que a correção\ndo CurXecute foi um número de versão. E todo servidor MCP que você conecta e\nque lê texto de fora, uma caixa de entrada, uma fila de tickets, uma busca,\nentrega ao agente frases que você não escreveu.",[25,248,250],{"id":249},"o-que-um-escaneamento-de-30998-apps-no-ar-diz-sobre-a-terceira-pergunta","O que um escaneamento de 30.998 apps no ar diz sobre a terceira pergunta",[10,252,253],{},"Que nada do editor chega ao app que você publicou. Não conseguimos distinguir\nde fora um app feito no Cursor de qualquer outro, e o achado é esse.",[10,255,256,257,261],{},"Entre 12 e 14 de agosto de 2026, passamos as nove verificações externas que\nqualquer um pode rodar de graça na nossa página inicial por 30.998 apps no ar.\nNós os encontramos por onde estavam publicados: 18.554 no domínio do Lovable,\n5.438 no do Base44, 3.042 no do Replit, e assim por diante. Um projeto do\nCursor é implantado onde você o colocar, na Vercel, na Netlify, em um domínio\nque você comprou, e a página que um visitante baixa não carrega marca nenhuma\ndo editor que a escreveu. Então não existe uma coluna do Cursor\n",[77,258,260],{"href":259},"\u002Fresearch\u002Fvibe-coded-app-security-2026","no relatório",", e não pode existir.",[10,263,264],{},"O que existe, em cada builder que medimos, é a mesma lista curta de coisas que\num dono deixou abertas, e nenhuma delas é decidida pelo editor. Cada parcela\nabaixo é sobre os apps em que aquela verificação respondeu, porque uma\nverificação que não conseguiu terminar é desconhecida e não aprovada. Nenhum\napp é nomeado aqui nem em qualquer outro lugar que publicamos.",[266,267,268,284],"table",{},[269,270,271],"thead",{},[272,273,274,278,281],"tr",{},[275,276,277],"th",{},"O que verificamos",[275,279,280],{},"Apps",[275,282,283],{},"Quem decide isso em um projeto do Cursor",[285,286,287,299,310,321,331,341,359],"tbody",{},[272,288,289,293,296],{},[290,291,292],"td",{},"Uma tabela do banco de dados legível sem login",[290,294,295],{},"2.096 de 3.680 (57%)",[290,297,298],{},"Você, no banco de dados",[272,300,301,304,307],{},[290,302,303],{},"Uma rota de API que respondeu a um estranho com dados",[290,305,306],{},"3.852 de 30.926 (12%)",[290,308,309],{},"Você, no código",[272,311,312,315,318],{},[290,313,314],{},"Source map servido (no Base44, quase sempre a plataforma)",[290,316,317],{},"3.885 de 30.987 (13%)",[290,319,320],{},"Você, no build, fora do Base44",[272,322,323,326,329],{},[290,324,325],{},"Algo com formato de chave no código que um visitante baixa",[290,327,328],{},"1.332 de 30.998 (4%)",[290,330,309],{},[272,332,333,336,339],{},[290,334,335],{},"Uma chave que cobra de uma conta ou ignora todas as regras",[290,337,338],{},"52 de 30.998",[290,340,309],{},[272,342,343,353,356],{},[290,344,345,346,348,349,352],{},"Um arquivo privado como ",[142,347,174],{}," ou ",[142,350,351],{},".git\u002Fconfig"," em uma URL pública",[290,354,355],{},"8 de 30.749",[290,357,358],{},"Você, no deploy",[272,360,361,364,367],{},[290,362,363],{},"Cabeçalhos de segurança do navegador ausentes",[290,365,366],{},"30.756 de 30.981 (99%)",[290,368,369],{},"Você, no host",[10,371,372,373,377,378,381],{},"A primeira linha é medida sobre os 3.680 apps que nomearam um projeto Supabase\ne cujo banco de dados respondeu à pergunta, por isso a base dela é menor;\n",[77,374,376],{"href":375},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","o que essa verificação lê e o que não lê","\ntem a escada completa. A quinta linha é a que custa dinheiro sozinha: uma chave\nsecreta da OpenAI, Anthropic, AWS ou Stripe, ou uma chave ",[142,379,380],{},"service_role"," do\nSupabase, no código que um navegador baixa.",[10,383,384,385,387,388,392],{},"A última coluna é o que muda no Cursor. No domínio próprio de um builder, duas\ndessas linhas pertencem ao host: os cabeçalhos são enviados pelo que serve a\npágina, e os source maps seguem as configurações de build do builder. Um\nprojeto do Cursor é o seu repositório, o seu build e o seu deploy, então cada\nlinha dessa tabela é sua, inclusive as duas que um dono de app no Lovable não\ncontrola. Isso é mais controle e mais coisa para verificar, e é por isso que o\n",[77,386,204],{"href":203}," gasta seu tempo na saída do seu\nbuild e no seu banco de dados em vez de no editor. O\n",[77,389,391],{"href":390},"\u002Fblog\u002Fis-replit-safe","post sobre o Replit"," faz as mesmas três perguntas a uma\nplataforma que hospeda o app e, ao mesmo tempo, deixa você publicar um servidor\nseu.",[25,394,396],{"id":395},"a-verificação-de-cinco-minutos-de-fora","A verificação de cinco minutos de fora",[10,398,399],{},"Use uma janela anônima para as três primeiras, para que o seu próprio login\nnão responda por um estranho.",[33,401,402,413,416,419,432],{},[36,403,404,405,408,409,412],{},"Abra seu endereço publicado com ",[142,406,407],{},"\u002F.env"," no final, depois com\n",[142,410,411],{},"\u002F.git\u002Fconfig",". Os dois devem falhar. Se algum mostrar texto, rotacione hoje\ncada chave que estiver nele, depois conserte o deploy para que esse arquivo\nnunca seja servido.",[36,414,415],{},"Abra do mesmo jeito uma das suas próprias rotas de API, uma que você não\ngostaria que um estranho lesse. Se ela responder com dados, essa rota\nprecisa de uma verificação de login.",[36,417,418],{},"Abra seu app no ar e depois a aba Sources das ferramentas de desenvolvedor\ndo navegador. Se você consegue ler seus arquivos originais com os\ncomentários, os source maps estão ligados no seu build de produção.",[36,420,421,422,424,425,427,428,431],{},"Se seus dados estão no Supabase, a metade de dentro da verificação está no\n",[77,423,204],{"href":203},": procure ",[142,426,380],{}," e\n",[142,429,430],{},"sk_live_"," na saída do build, depois abra a página de políticas.",[36,433,434,435,205],{},"Ou deixe o escaneamento fazer isso. Ele roda essas e o resto das nove de\nfora, leva uns 20 segundos, não precisa de conta e imprime «Não foi possível\nverificar» para tudo que não conseguiu responder, em vez de um sinal de\ncerto: ",[77,436,438],{"href":437},"\u002Fsecurity-scanner","escaneie seu app",[25,440,442],{"id":441},"o-que-muda-depois-do-próximo-push","O que muda depois do próximo push?",[10,444,445],{},"Qualquer coisa. Um projeto do Cursor vai ao ar quando você faz push, e nada\nentre o seu editor e a internet relê o app procurando uma rota que perdeu a\nverificação de login, uma chave colada à meia-noite para passar por um build\nque estava falhando, ou um source map que voltou a ficar ligado com uma mudança\nde configuração. O número da Veracode é o motivo de isso importar mais aqui do\nque em um builder: cada sessão com o agente é código novo que compila e pode\nnão ser seguro, e um escaneamento que você rodou mês passado descreve o app do\nmês passado.",[10,447,448,449,453,454,458],{},"O ",[77,450,452],{"href":451},"\u002Fpricing","Reeve Monitor"," foi feito para isso. Ele roda de novo todas as nove\nverificações a cada hora em até três apps, vigia a disponibilidade a cada 60\nsegundos, avisa você quando um resultado muda em vez de esperar você olhar, e\nenvia um relatório mensal. Custa $12 por mês no preço de lista, com sete dias\ngrátis antes de cobrar; a página de preços às vezes fica abaixo do valor daqui\ne nunca acima. O Monitor vigia e nada mais. Se o seu app do Cursor guarda os\ndados no Supabase, o ",[77,455,457],{"href":456},"\u002Fsupabase-backups","Care"," é o plano que também mantém uma\ncópia desse banco de dados, e dos seus arquivos enviados assim que você conecta\numa credencial de Storage. Se os dados moram em outro lugar, o Monitor é a\nmetade que serve.",[25,460,462],{"id":461},"o-que-fazer-esta-semana","O que fazer esta semana",[464,465,466],"key-takeaways",{},[467,468,469,472,478,481,490],"ul",{},[36,470,471],{},"Encontre o Privacy Mode nas configurações do Cursor e confira qual versão está selecionada. Em uma equipe, peça ao administrador para impô-lo.",[36,473,474,475,477],{},"Trate qualquer chave na pasta de projeto que você abriu como uma chave que o agente consegue ler. O ",[142,476,152],{}," a deixa fora do índice, e o terminal não lê essa lista.",[36,479,480],{},"Leia como código qualquer arquivo de regras ou configuração MCP que você copiou da internet, e mantenha o Cursor atualizado.",[36,482,483,484,486,487,489],{},"Abra ",[142,485,407],{}," e ",[142,488,411],{}," no seu endereço publicado em uma janela anônima. Os dois devem falhar.",[36,491,492],{},"Abra suas próprias rotas de API sem login. Qualquer rota que responda com dados privados precisa de uma verificação de login.",[10,494,495,496,498,499,503],{},"A metade de dentro de tudo isso, a saída do build e o banco de dados, é o\n",[77,497,204],{"href":203},". O\n",[77,500,502],{"href":501},"\u002Fchecklist","checklist de segurança de 10 minutos"," cobre o que vale a pena\nconfirmar em qualquer app recém-lançado, seja lá o que o tenha escrito.",{"title":505,"searchDepth":506,"depth":506,"links":507},"",3,[508,510,511,512,513,514,515,516,517],{"id":27,"depth":509,"text":28},2,{"id":65,"depth":509,"text":66},{"id":118,"depth":509,"text":119},{"id":178,"depth":509,"text":179},{"id":213,"depth":509,"text":214},{"id":249,"depth":509,"text":250},{"id":395,"depth":509,"text":396},{"id":441,"depth":509,"text":442},{"id":461,"depth":509,"text":462},"Noções de segurança","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcover-1200x630.png","O logo do Cursor em um bloco branco, uma seta para uma janela de editor com um brilho, depois uma página publicada e três visitantes.","O Cursor AI é seguro? Três perguntas em uma busca: o que o Cursor guarda, o que o código que ele escreve erra, e se o app que você publicou está aberto.",false,"md",[525,528,531,534,537,540],{"q":526,"a":527},"O Cursor treina com meu código?","Só com o Privacy Mode desligado. Com ele ligado, o Cursor afirma que dados de clientes não são usados para treinamento e que mantém acordos de retenção zero de dados com cada provedor de modelos, então nada fica do lado deles também. Com ele desligado, o Cursor diz que pode usar e guardar seu código, seus prompts e suas ações no editor para melhorar seus recursos e treinar seus modelos. O interruptor está disponível em todos os planos, inclusive no gratuito, e um administrador de equipe pode ligá-lo para todo mundo.",{"q":529,"a":530},"O que o Privacy Mode faz de verdade?","Ele decide o que acontece com seu código depois que uma solicitação foi respondida. Seu código continua saindo do seu computador a cada solicitação, porque é assim que um editor em nuvem funciona. O Privacy Mode impede o Cursor de treinar com ele e obriga os provedores de modelos a não guardar nada. Desde meados de 2025 existem duas versões: a atual deixa o Cursor guardar alguns dados para recursos como agentes em nuvem e memórias, e a que agora se chama Legacy não guarda nada. Se você escolheu a mais rígida, confira se ela ainda está selecionada.",{"q":532,"a":533},"A indexação do código é segura?","A indexação envia pedaços do seu projeto ao Cursor para virarem embeddings, um resumo numérico que permite a ele achar o arquivo certo quando você faz uma pergunta. O Cursor diz que os caminhos dos arquivos são criptografados antes de sair da sua máquina e que o código em si nunca é guardado como texto legível, então o que fica nos servidores dele é um mapa do seu projeto. Arquivos no .gitignore e arquivos .env são pulados por padrão, e um arquivo .cursorignore deixa qualquer outra coisa fora do índice. A ressalva é o terminal: o Cursor documenta que o agente, ao executar um comando, consegue ler um arquivo que o .cursorignore exclui.",{"q":535,"a":536},"O Cursor tem certificação SOC 2?","O Cursor lista uma atestação SOC 2 Tipo II na página de segurança dele, ao lado de ISO\u002FIEC 27001 e ISO\u002FIEC 42001. Um relatório SOC 2 significa que um auditor externo verificou que a empresa tem controles sobre como trata os dados que guarda. Ele não diz nada sobre o código que o Cursor escreve ser seguro, nem sobre o app que você publicou com ele, que são as duas perguntas que preocupam a maioria de quem digita «o cursor ai é seguro».",{"q":538,"a":539},"Código gerado por IA é menos seguro do que o que eu escrevo?","A resposta medida é sobre os modelos, não sobre você. A Veracode passa 80 tarefas de programação por cada modelo importante, cada uma com um jeito seguro e um inseguro de fazer o trabalho, e na atualização de primavera de 2026 só 55% dos resultados eram seguros enquanto mais de 95% compilavam. A lacuna é o que vale guardar: o código passa no teste que você faz, que é se funciona, e mais ou menos metade das vezes ele não tomou a decisão de segurança que ninguém testa por você.",{"q":541,"a":542},"O Cursor é seguro para trabalho de cliente?","Depende do que o contrato do cliente diz sobre para onde o código dele pode ir. O Cursor envia as partes relevantes de um projeto para os servidores dele, e dali para um provedor de modelos, a cada solicitação; o Privacy Mode muda o que é guardado depois, não se o código viaja. Se o contrato permite uma ferramenta em nuvem sob um acordo de retenção zero de dados, o Privacy Mode é a configuração que lhe dá um, e em um plano de equipe o administrador pode impô-lo para que ninguém no projeto consiga desligá-lo.","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",[545,546,547,548,549,550,551,552,553,554],"o cursor ai é seguro","o cursor é seguro","cursor ai segurança","cursor privacy mode","o cursor treina com meu código","cursor indexação de código privacidade","cursor soc 2","código gerado por ia é seguro","riscos de segurança do cursor","is cursor ai safe",{},true,"\u002Fblog\u002Fis-cursor-ai-safe","2026-09-16",{"title":5,"description":521},"blog\u002Fis-cursor-ai-safe",[562,563,564],"O Cursor AI é seguro? Como editor, é uma ferramenta em nuvem comum: seu código vai para os servidores dele para ser respondido, um interruptor decide o que fica, e ele tem uma atestação SOC 2 Tipo II.","O código que ele escreve é uma segunda pergunta. No teste de primavera de 2026 da Veracode, mais de 150 modelos produziram código que compilava mais de 95% das vezes e era seguro 55% das vezes.","O app que você publicou é a terceira, e a única que um escaneamento de fora consegue responder. Não conseguimos distinguir um app feito no Cursor de qualquer outro, e é justamente esse o ponto: nada do editor chega ao que você publicou.","2026-09-21","QnKHU27KjzzXdf3wradGxfZSZ1QFGg43UYAvkWZwxus",[568,575,581,586,592,598,604,610,611,616,622,628,634,640,646,652,658,664,670,676,682,688,694,700,706,712,718,724,730,736,742,748,754,760,766,771,776,782,788,794,799,805],{"path":569,"title":570,"description":571,"published":572,"category":573,"image":574,"draft":522},"\u002Fblog\u002Fsupabase-backup-auth-users","Por que seu dump do Supabase não tem usuários dentro","Rode supabase db dump sozinho e você recebe a forma do seu banco e nenhuma das linhas dele, sem o schema auth onde seus usuários moram.","2026-09-23","Backups","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":576,"title":577,"description":578,"published":579,"category":518,"image":580,"draft":522},"\u002Fblog\u002Fdomain-and-certificate-expiry","Domínio expirado, site fora do ar: o que acontece agora","Seu domínio expirou e seu site está fora do ar. O relógio que começa a correr, por que o certificado é o problema menor, e como conferir os dois.","2026-09-22","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":582,"title":583,"description":584,"published":565,"category":518,"image":585,"draft":522},"\u002Fblog\u002Fis-lovable-safe","O Lovable é seguro? O que vimos em 18.554 aplicativos Lovable","O Lovable é seguro? Passamos 18.554 aplicativos Lovable no ar por nove verificações. A plataforma foi a mais limpa de cinco. Os achados estavam nos aplicativos.","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":587,"title":588,"description":589,"published":590,"category":518,"image":591,"draft":522},"\u002Fblog\u002Fvibe-coded-app-security-checklist","O checklist de segurança do vibe coding, em nove verificações","Um checklist de segurança do vibe coding com nove itens, cada um verificável no seu app de fora por qualquer pessoa, e cada um com um teste de uma linha.","2026-09-20","\u002Fblog\u002Fvibe-coded-app-security-checklist\u002Fcard-800x500.png",{"path":593,"title":594,"description":595,"published":596,"category":518,"image":597,"draft":522},"\u002Fblog\u002Fstripe-secret-key-in-frontend","Uma chave secreta da Stripe no frontend pode mover dinheiro","Uma chave secreta da Stripe exposta no seu frontend pode reembolsar, cobrar e ler cada ficha de cliente que você tem. Sua chave pk_live_ é que deve estar aí.","2026-09-19","\u002Fblog\u002Fstripe-secret-key-in-frontend\u002Fcard-800x500.png",{"path":599,"title":600,"description":601,"published":602,"category":518,"image":603,"draft":522},"\u002Fblog\u002Fvite-and-next-public-env-vars","Variáveis de ambiente do Vite expostas: o prefixo diz publique isto","Variáveis de ambiente do Vite expostas no seu app: fizeram o que o prefixo pediu. VITE_ e NEXT_PUBLIC_ significam publique isto, e a IA nunca soube o custo.","2026-09-18","\u002Fblog\u002Fvite-and-next-public-env-vars\u002Fcard-800x500.png",{"path":605,"title":606,"description":607,"published":608,"category":518,"image":609,"draft":522},"\u002Fblog\u002Fbase44-source-maps","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.","2026-09-17","\u002Fblog\u002Fbase44-source-maps\u002Fcard-800x500.png",{"path":557,"title":5,"description":521,"published":558,"category":518,"image":543,"draft":522},{"path":390,"title":612,"description":613,"published":614,"category":518,"image":615,"draft":522},"O Replit é seguro? O que vimos em 3.042 aplicativos Replit no ar","O Replit é seguro? Passamos 3.042 aplicativos Replit no ar por nove verificações externas. Os achados estavam no aplicativo publicado, não no host.","2026-09-15","\u002Fblog\u002Fis-replit-safe\u002Fcard-800x500.png",{"path":617,"title":618,"description":619,"published":620,"category":573,"image":621,"draft":522},"\u002Fblog\u002Fsupabase-storage-backup","Supabase storage backup: sua cópia do banco não tem nenhum arquivo","Um Supabase storage backup é uma tarefa à parte. Os backups do banco guardam a lista dos seus arquivos e nenhum deles, então cada upload fica quebrado.","2026-09-14","\u002Fblog\u002Fsupabase-storage-backup\u002Fcard-800x500.png",{"path":623,"title":624,"description":625,"published":626,"category":573,"image":627,"draft":522},"\u002Fblog\u002Fsupabase-point-in-time-recovery","Point-in-time recovery do Supabase: preço e limites","O point-in-time recovery do Supabase rebobina seu banco para qualquer segundo da última semana. Custa $100 por mês além do Pro e cobre só o banco.","2026-09-13","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcard-800x500.png",{"path":629,"title":630,"description":631,"published":632,"category":573,"image":633,"draft":522},"\u002Fblog\u002Fsupabase-project-paused-recover","Projeto Supabase pausado? Seus dados continuam lá","O Supabase pausou seu projeto depois de uma semana sem atividade. Nada foi apagado, Restaurar fica ao lado do nome e você tem um ano antes disso mudar.","2026-09-12","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",{"path":635,"title":636,"description":637,"published":638,"category":518,"image":639,"draft":522},"\u002Fblog\u002Fsafest-ai-app-builder","Qual builder de apps com IA é mais seguro? 30.998 apps testados","Qual builder de apps com IA é mais seguro? Escaneamos 30.998 apps no ar do Lovable, Base44, Replit, v0 e Bolt. O builder não é o que decide sua nota.","2026-09-11","\u002Fblog\u002Fsafest-ai-app-builder\u002Fcard-800x500.png",{"path":641,"title":642,"description":643,"published":644,"category":518,"image":645,"draft":522},"\u002Fblog\u002Fenable-rls-on-every-supabase-table","Ative Row Level Security em toda tabela do Supabase e comprove","Ativar Row Level Security no Supabase sem política fecha a tabela por completo. Uma política sem a chave ligada não faz nada. Aqui está o SQL, e o teste.","2026-09-10","\u002Fblog\u002Fenable-rls-on-every-supabase-table\u002Fcard-800x500.png",{"path":647,"title":648,"description":649,"published":650,"category":518,"image":651,"draft":522},"\u002Fblog\u002Fsupabase-rls-disabled-in-public","Supabase \"RLS disabled in public\": o que o aviso não vê","O Supabase marca \"RLS disabled in public\" como erro. Ele não diz nada sobre a política de leitura que deixa a sua tabela igualmente aberta.","2026-09-09","\u002Fblog\u002Fsupabase-rls-disabled-in-public\u002Fcard-800x500.png",{"path":653,"title":654,"description":655,"published":656,"category":518,"image":657,"draft":522},"\u002Fblog\u002Frotate-supabase-service-role-key","Como rotacionar uma chave service_role do Supabase vazada","O Supabase manda fechar o vazamento primeiro. Outros guias mandam rotacionar agora. O que vale depende de para onde a sua chave service_role vazou.","2026-09-08","\u002Fblog\u002Frotate-supabase-service-role-key\u002Fcard-800x500.png",{"path":659,"title":660,"description":661,"published":662,"category":518,"image":663,"draft":522},"\u002Fblog\u002Fvibe-coding-security-scanners-compared","Scanners de segurança para vibe coding comparados, o nosso incluído","O melhor scanner de segurança para vibe coding depende de três perguntas que nenhuma lista de recursos responde. Dez ferramentas comparadas, com preços.","2026-09-07","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",{"path":665,"title":666,"description":667,"published":668,"category":518,"image":669,"draft":522},"\u002Fblog\u002Fsupabase-security-checker","Supabase security checker: faça você mesmo as cinco verificações","Um Supabase security checker lê o seu app publicado em vez das configurações do projeto. Aqui estão as cinco verificações e como fazer cada uma sozinho.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":671,"title":672,"description":673,"published":674,"category":518,"image":675,"draft":522},"\u002Fblog\u002Fvibe-coding-security-scanner","Scanner de segurança para vibe coding: o que ele não vê","Um scanner de segurança para vibe coding lê seu app no ar, de fora. O que isso cobre, as quatro coisas que ele não consegue ver e como ler o resultado.","2026-09-05","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":677,"title":678,"description":679,"published":680,"category":518,"image":681,"draft":522},"\u002Fblog\u002Fmissing-security-headers","Cabeçalhos de segurança faltando: quando isso importa","Cabeçalhos de segurança faltando é o achado que nosso scanner mais imprime. Contra o que eles protegem e quando são a linha menos urgente do relatório.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":683,"title":684,"description":685,"published":686,"category":518,"image":687,"draft":522},"\u002Fblog\u002Fopenai-api-key-exposed-in-frontend","Sua chave de API da OpenAI está exposta no frontend. Troque-a.","Uma chave de API da OpenAI exposta no frontend não pode ser presa a um domínio. Troque-a hoje, mova a chamada para o seu servidor e limite o gasto.","2026-09-03","\u002Fblog\u002Fopenai-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":689,"title":690,"description":691,"published":692,"category":518,"image":693,"draft":522},"\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps","Chave de API exposta no frontend: o que 30.998 apps entregam","Uma chave de API exposta no seu frontend costuma ser uma chave do Google Maps. Escaneamos 30.998 apps vibe-coded e contamos quais segredos vazam de verdade.","2026-09-02","\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps\u002Fcard-800x500.png",{"path":695,"title":696,"description":697,"published":698,"category":573,"image":699,"draft":522},"\u002Fblog\u002Fsupabase-backup-tools-compared","Ferramentas de backup do Supabase comparadas, a nossa incluída","Quatro tipos de ferramenta de backup do Supabase, o que cada uma copia de verdade e quando uma GitHub Action gratuita ganha de pagar, nós inclusive.","2026-09-01","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",{"path":701,"title":702,"description":703,"published":704,"category":518,"image":705,"draft":522},"\u002Fblog\u002Freplit-secrets-explained","Como usar secrets no Replit, e o que ainda assim é publicado","Como usar secrets no Replit: adicionar um, ler de volta e resolver as duas causas do undefined. E as chaves que a ferramenta Secrets não consegue proteger.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":707,"title":708,"description":709,"published":710,"category":573,"image":711,"draft":522},"\u002Fblog\u002Fback-up-supabase-free-tier","Backups do plano gratuito do Supabase: como fazer sem terminal","No plano gratuito do Supabase não existe backup nenhum: a cópia é você que faz. Como fazer uma pelo painel e o que a rota do CSV deixa para trás.","2026-08-30","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",{"path":713,"title":714,"description":715,"published":716,"category":518,"image":717,"draft":522},"\u002Fblog\u002Fis-supabase-secure","O Supabase é seguro? É. Seu projeto é outra pergunta","O Supabase é seguro? A plataforma é auditada, criptografada e passa por pentests. A documentação deles diz onde isso termina e começam suas configurações.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":719,"title":720,"description":721,"published":722,"category":518,"image":723,"draft":522},"\u002Fblog\u002Fwhere-to-find-supabase-api-keys","Onde ficam as chaves de API do Supabase: anon, service_role e URL","A URL do projeto, a chave anon e a chave service_role ficam todas numa página do painel. Aqui está onde ela fica, e qual dos quatro valores vai no seu app.","2026-08-28","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fcard-800x500.png",{"path":725,"title":726,"description":727,"published":728,"category":518,"image":729,"draft":522},"\u002Fblog\u002Fnew-row-violates-row-level-security-policy","New row violates row-level security policy no Supabase. E agora?","\"New row violates row-level security policy\" significa que o Supabase recusou uma escrita. O conserto rápido reabre a tabela para qualquer um.","2026-08-27","\u002Fblog\u002Fnew-row-violates-row-level-security-policy\u002Fcard-800x500.png",{"path":731,"title":732,"description":733,"published":734,"category":518,"image":735,"draft":522},"\u002Fblog\u002Fcors-wildcard-security-risk","Um curinga CORS é um risco de segurança? Quase nunca.","Um curinga CORS é um risco de segurança? Em geral é o padrão do seu builder e não entrega nada que o seu servidor já não desse a qualquer um que pedisse.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":737,"title":738,"description":739,"published":740,"category":573,"image":741,"draft":522},"\u002Fblog\u002Fsupabase-branching-is-not-a-backup","Branching do Supabase não é backup. Ele só anda para a frente.","Por que o branching do Supabase não é backup: um branch começa sem os seus dados e um merge só leva o esquema. Para que ele serve e o que usar no lugar.","2026-08-25","\u002Fblog\u002Fsupabase-branching-is-not-a-backup\u002Fcard-800x500.png",{"path":743,"title":744,"description":745,"published":746,"category":573,"image":747,"draft":522},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","Como restaurar um backup do Supabase, e o que quebra depois","Como restaurar um backup do Supabase pelo painel ou por um arquivo de dump, o que a restauração substitui e por que o seu app pode continuar quebrado no fim.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":749,"title":750,"description":751,"published":752,"category":518,"image":753,"draft":522},"\u002Fblog\u002Fsupabase-storage-bucket-public","Seu bucket do Supabase Storage é público. Isso é um problema?","Um bucket público do Supabase Storage significa que quem tem a URL de um arquivo pode abri-lo. Não significa que alguém possa listar o que está lá dentro.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":755,"title":756,"description":757,"published":758,"category":518,"image":759,"draft":522},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","Uma chave de API do Google no frontend é um problema?","Uma chave de API do Google exposta no seu frontend é a chave que nosso scanner mais encontra, e quase sempre está tudo bem. Um ajuste gratuito decide isso.","2026-08-22","\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":761,"title":762,"description":763,"published":764,"category":573,"image":765,"draft":522},"\u002Fblog\u002Fai-agent-deleted-my-database","Um agente de IA apagou meus dados do Supabase. O que eu recupero?","Um agente de IA apagou dados do seu banco. O que você recupera já estava decidido antes de ele rodar, e os próximos minutos decidem o resto.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":375,"title":767,"description":768,"published":769,"category":518,"image":770,"draft":522},"Qualquer um consegue ler seu banco Supabase? Testamos 3.680 apps","Qualquer um consegue ler seu banco de dados Supabase sem fazer login? Escaneamos 30.998 apps no ar criadas com builders de IA e medimos quantas dizem que sim.","2026-08-18","\u002Fblog\u002Fcan-anyone-read-your-supabase-database\u002Fcard-800x500.png",{"path":772,"title":773,"description":774,"published":769,"category":518,"image":775,"draft":522},"\u002Fblog\u002Fsource-maps-exposed-in-production","Source maps expostos: seu app está publicando o código original","Um source map exposto deixa qualquer um ler o código original do seu app, comentários incluídos. A verificação de 30 segundos e o que importa de verdade.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":777,"title":778,"description":779,"published":780,"category":518,"image":781,"draft":522},"\u002Fblog\u002Fsupabase-new-api-keys","As novas chaves de API do Supabase: qual vai no seu app?","O Supabase trocou anon e service_role por chaves publicáveis e secretas. Qual delas pertence ao seu app e qual nunca deve estar lá?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":783,"title":784,"description":785,"published":786,"category":573,"image":787,"draft":522},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","O Supabase faz backup do meu banco de dados? Depende do plano.","O Supabase faz backup do seu banco de dados? Todo dia nos planos pagos, e nada no gratuito. Como descobrir o que você tem e o que essa cópia não cobre.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":789,"title":790,"description":791,"published":792,"category":518,"image":793,"draft":522},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","O Supabase Row Level Security está ligado. A tabela continua pública.","Ligar o Supabase Row Level Security não protege uma tabela. Quem protege são as políticas, e a que consertou o seu app pode deixar qualquer um entrar.","2026-08-10","\u002Fblog\u002Fsupabase-rls-on-but-table-still-public\u002Fcard-800x500.png",{"path":795,"title":796,"description":797,"published":792,"category":573,"image":798,"draft":522},"\u002Fblog\u002Fversion-history-is-not-a-backup","O histórico de versões não é backup. Ele não desfaz um delete.","Lovable e Bolt guardam um histórico de versões do seu código. Seu banco de dados é um serviço à parte, e voltar atrás não traz os seus dados de volta.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":800,"title":801,"description":802,"published":803,"category":573,"image":804,"draft":522},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Três formas de fazer backup de um banco Supabase, e o que falta","O painel, o pg_dump e um serviço gerenciado. O que cada um salva de verdade, o que deixa de fora sem avisar e qual sobrevive a perder a conta.","2026-08-09","\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database\u002Fcard-800x500.png",{"path":806,"title":807,"description":808,"published":803,"category":518,"image":809,"draft":522},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","Quais chaves de API são seguras no navegador e quais não são","Sua chave anon do Supabase foi feita para ser pública. Sua chave service_role não, e ela ignora todas as regras que você criar. Como diferenciar as duas.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1790150954265]