[{"data":1,"prerenderedAt":1198},["ShallowReactive",2],{"blog-pt-vibe-coding-security-scanners-compared":3,"blog-index-pt":955},{"id":4,"title":5,"body":6,"category":908,"cover":909,"coverAlt":910,"description":911,"draft":912,"extension":913,"faq":914,"image":933,"keywords":934,"meta":943,"navigation":944,"ogTitle":945,"path":946,"published":947,"seo":948,"stem":949,"tldr":950,"updated":947,"__hash__":954},"blog_pt\u002Fblog\u002Fvibe-coding-security-scanners-compared.md","Scanners de segurança para vibe coding comparados, o nosso incluído",{"type":7,"value":8,"toc":892},"minimark",[9,13,16,24,37,42,45,51,63,69,77,83,87,90,276,279,282,286,289,420,423,427,430,433,444,451,466,471,474,477,480,483,491,495,498,501,509,515,519,522,706,714,717,728,732,735,756,759,763,766,781,784,804,807,811,814,850,854,877],[10,11,12],"p",{},"Você digitou \"melhor scanner de segurança para vibe coding\" numa busca, e o\nprimeiro comparativo que voltou tinha sido escrito por um dos scanners. O aviso\nestava lá, numa linha embaixo da tabela.",[10,14,15],{},"A Reeve é uma das dez ferramentas abaixo, então esta página tem o mesmo problema.\nA Reeve é um scanner de segurança grátis que lê uma URL ao vivo em uns vinte\nsegundos sem conta, e uma assinatura paga que continua vigiando o app depois e\nguarda uma cópia verificada do banco de dados dele. O que dá para fazer com esse\nconflito é mostrar o trabalho. Cada linha foi lida no site do próprio vendedor em\n7 de setembro de 2026, cada preço está impresso incluindo o nosso, aqui não há\nnada patrocinado, e perto do fim há uma seção que nomeia os três trabalhos desta\npágina que a Reeve não faz.",[10,17,18,19,23],{},"Aqui está o que os comparativos escritos pelos fabricantes deixam de fora. ",[20,21,22],"strong",{},"A\nmaioria dessas ferramentas lê a mesma superfície."," Elas carregam o seu app ao\nvivo, baixam o JavaScript que ele manda para o navegador, leem os cabeçalhos que\nvieram junto, fazem ao seu banco de dados uma pergunta que qualquer estranho\npoderia fazer, e anotam o que respondeu. O escaneamento é a parte que elas têm em\ncomum. Três perguntas as separam:",[25,26,27,31,34],"ol",{},[28,29,30],"li",{},"Ela distingue uma chave que pertence ao seu app de uma que não pertence?",[28,32,33],{},"Ela avisa quando uma verificação não obteve resposta?",[28,35,36],{},"Acontece alguma coisa no dia em que os seus dados realmente sumirem?",[38,39,41],"h2",{"id":40},"qual-é-o-melhor-scanner-de-segurança-para-vibe-coding","Qual é o melhor scanner de segurança para vibe coding?",[10,43,44],{},"O que consegue ler a superfície em que o seu problema está. Essa pergunta ordena\na lista mais rápido do que qualquer lista de recursos, e divide dez ferramentas\nem três grupos.",[10,46,47,50],{},[20,48,49],{},"Ferramentas a que você dá uma URL."," SafeToShip, LaunchGuard, Vibe App Scanner,\nVibeEval, SupaExplorer e Reeve. Você cola um endereço, elas carregam o seu app do\njeito que um visitante carregaria, e em um ou dois minutos volta um relatório.\nNada para instalar, nenhuma conta para conectar, nenhum acesso a nada que seja\nseu.",[10,52,53,56,57,62],{},[20,54,55],{},"Ferramentas a que você dá o seu código."," O CheckVibe lê uma URL ao vivo e\ntambém se conecta a um repositório do GitHub se você deixar. Ler o código-fonte\nresponde perguntas que um escaneamento de URL não consegue fazer, e traz um ponto\ncego próprio, e por isso\n",[58,59,61],"a",{"href":60},"\u002Fblog\u002Fvibe-coding-security-scanner","o que um escaneamento de URL não vê"," vale a\nleitura antes de você pagar por qualquer um dos dois.",[10,64,65,68],{},[20,66,67],{},"Ferramentas a que você dá a sua conta do Supabase."," O próprio Security Advisor\ndo Supabase mora no seu painel e lê a configuração do projeto. O Defencecore pede\nacesso somente leitura aos logs de um projeto e depois os vigia. O Supabomb é uma\nferramenta de linha de comando de código aberto escrita para quem faz isso\nprofissionalmente. As três alcançam de dentro da conta coisas que nada colocado\nfora do seu app consegue ver.",[10,70,71,72,76],{},"Se você está no Supabase e nunca abriu o Security Advisor, abra esse antes de\npagar qualquer um desta página. Ele é grátis, roda sozinho, e escreve para o dono\ndo projeto quando aparece uma tabela com a Row Level Security desligada. Ele\ntambém não concorre com nada aqui: ele lê a sua configuração, enquanto um\nescaneamento lê o que a sua configuração está fazendo com estranhos, e\n",[58,73,75],{"href":74},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","essas duas coisas se separam"," mais\ndo que qualquer um espera.",[78,79],"diagram",{"alt":80,"caption":81,"src":82},"Uma grade de três por três. Cada linha começa com o que se entrega a uma ferramenta: um globo, um par de colchetes angulares, uma chave. Cada coluna é uma superfície que ela poderia ler: uma janela de aplicativo, código-fonte, um banco de dados ao lado de um balde de armazenamento. Em cada linha uma célula está acesa e as outras duas são contornos tracejados, então as acesas caem na diagonal.","O que se entrega a cada tipo de ferramenta e o que isso deixa ela ler. Uma ferramenta desta página compra duas dessas linhas. Nenhuma compra as três.","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fwhat-you-hand-it-1600x700.png",[38,84,86],{"id":85},"o-que-cada-scanner-lê-de-verdade","O que cada scanner lê de verdade?",[10,88,89],{},"Sete dos dez funcionam apenas com uma URL. Os outros três querem alguma coisa que\nvocê precisa entrar para entregar, e essa é a coluna que se lê antes de qualquer\nlista de recursos. As duas da direita decidem se você consegue testar uma\nferramenta hoje de manhã: cinco escaneiam sem conta nenhuma, e quatro desses\ncinco mostram o relatório inteiro.",[91,92,93,115],"table",{},[94,95,96],"thead",{},[97,98,99,103,106,109,112],"tr",{},[100,101,102],"th",{},"Ferramenta",[100,104,105],{},"O que lê",[100,107,108],{},"O que você entrega",[100,110,111],{},"Escaneia sem cadastro",[100,113,114],{},"Achados completos grátis",[116,117,118,136,153,170,186,200,215,229,246,262],"tbody",{},[97,119,120,124,127,130,133],{},[121,122,123],"td",{},"Supabase Security Advisor",[121,125,126],{},"A configuração do seu próprio projeto",[121,128,129],{},"O seu login do Supabase",[121,131,132],{},"É a sua própria conta",[121,134,135],{},"Sim",[97,137,138,141,144,147,150],{},[121,139,140],{},"CheckVibe",[121,142,143],{},"O seu app ao vivo, e o seu repositório se você conectar",[121,145,146],{},"Uma URL, e o GitHub se quiser",[121,148,149],{},"Não, o botão dele é \u002Fsignup",[121,151,152],{},"Não, um plano pago abre",[97,154,155,158,161,164,167],{},[121,156,157],{},"Defencecore",[121,159,160],{},"Os seus logs do Supabase",[121,162,163],{},"Acesso somente leitura aos logs de um projeto",[121,165,166],{},"Não, ele quer um teste",[121,168,169],{},"Não",[97,171,172,175,178,181,183],{},[121,173,174],{},"LaunchGuard",[121,176,177],{},"O seu app ao vivo",[121,179,180],{},"Uma URL",[121,182,135],{},[121,184,185],{},"Sim, do que ele escaneia",[97,187,188,191,193,195,197],{},[121,189,190],{},"Reeve",[121,192,177],{},[121,194,180],{},[121,196,135],{},[121,198,199],{},"Não, um e-mail primeiro",[97,201,202,205,207,209,212],{},[121,203,204],{},"SafeToShip",[121,206,177],{},[121,208,180],{},[121,210,211],{},"Sim, \"no account needed\"",[121,213,214],{},"Não, $9 ou um plano",[97,216,217,220,223,225,227],{},[121,218,219],{},"SupaExplorer",[121,221,222],{},"O seu app ao vivo, ou um projeto que você conectar",[121,224,180],{},[121,226,135],{},[121,228,135],{},[97,230,231,234,237,240,243],{},[121,232,233],{},"Supabomb",[121,235,236],{},"O seu projeto Supabase, pela linha de comando",[121,238,239],{},"Credenciais que você mesmo fornece",[121,241,242],{},"Você mesmo roda",[121,244,245],{},"Sim, é de código aberto",[97,247,248,251,254,256,259],{},[121,249,250],{},"Vibe App Scanner",[121,252,253],{},"O seu app ao vivo, logado no plano mais alto",[121,255,180],{},[121,257,258],{},"A página dele não diz",[121,260,261],{},"Não, um escaneamento, em parte",[97,263,264,267,270,272,274],{},[121,265,266],{},"VibeEval",[121,268,269],{},"O seu app ao vivo, inclusive páginas atrás de um login",[121,271,180],{},[121,273,166],{},[121,275,169],{},[10,277,278],{},"Cada linha foi lida nas páginas da própria ferramenta em 7 de setembro de 2026.\nEsta é uma categoria jovem e as páginas se mexem, então trate a linha como mais\nvelha que o site de onde veio.",[10,280,281],{},"É nessa tabela que a maioria dos comparativos para, e é a parte que menos separa\nessas ferramentas.",[38,283,285],{"id":284},"as-três-perguntas-ferramenta-por-ferramenta","As três perguntas, ferramenta por ferramenta",[10,287,288],{},"A Reeve é a única das dez que responde sim às três.",[91,290,291,306],{},[94,292,293],{},[97,294,295,297,300,303],{},[100,296,102],{},[100,298,299],{},"Distingue chave publicável de secreta",[100,301,302],{},"Avisa quando uma verificação não respondeu",[100,304,305],{},"Consegue devolver os seus dados",[116,307,308,321,331,342,352,362,372,383,394,404],{},[97,309,310,312,315,318],{},[121,311,190],{},[121,313,314],{},"Sim, decodifica o papel da chave",[121,316,317],{},"Sim, imprime \"Não foi possível verificar\"",[121,319,320],{},"Sim, na assinatura",[97,322,323,325,327,329],{},[121,324,140],{},[121,326,258],{},[121,328,258],{},[121,330,169],{},[97,332,333,335,338,340],{},[121,334,157],{},[121,336,337],{},"Não é o que ele faz",[121,339,258],{},[121,341,169],{},[97,343,344,346,348,350],{},[121,345,174],{},[121,347,258],{},[121,349,258],{},[121,351,169],{},[97,353,354,356,358,360],{},[121,355,204],{},[121,357,258],{},[121,359,258],{},[121,361,169],{},[97,363,364,366,368,370],{},[121,365,219],{},[121,367,258],{},[121,369,258],{},[121,371,169],{},[97,373,374,376,378,381],{},[121,375,123],{},[121,377,337],{},[121,379,380],{},"Não se aplica, ele fica por dentro",[121,382,169],{},[97,384,385,387,390,392],{},[121,386,233],{},[121,388,389],{},"Você leria o código-fonte",[121,391,389],{},[121,393,169],{},[97,395,396,398,400,402],{},[121,397,250],{},[121,399,258],{},[121,401,258],{},[121,403,169],{},[97,405,406,408,416,418],{},[121,407,266],{},[121,409,410,411,415],{},"Listou uma chave ",[412,413,414],"code",{},"pk_live_"," como CRIT",[121,417,258],{},[121,419,169],{},[10,421,422],{},"\"A página dele não diz\" quer dizer exatamente isso. Conseguimos ler o que essas\nferramentas publicam sobre si mesmas; o relatório que você receberia não\nconseguimos ver. As três seções abaixo explicam cada coluna e dão um jeito de\nconferir isso no seu próprio app, escaneando com duas dessas ferramentas e lendo\nos dois relatórios lado a lado.",[38,424,426],{"id":425},"ela-distingue-as-suas-chaves-seguras-das-perigosas","Ela distingue as suas chaves seguras das perigosas?",[10,428,429],{},"A Reeve distingue, decodificando a chave e lendo o papel escrito dentro dela.\nEssa única capacidade é a diferença entre um relatório com que você consegue\nfazer alguma coisa e uma lista de quarenta itens pelos quais você aprende a\nrolar direto.",[10,431,432],{},"Comece pelo motivo de as contagens divergirem tanto. Um número de verificações é\num número de marketing e não uma medida: o CheckVibe anuncia mais de cem, a Reeve\nroda nove e publica com que frequência cada uma das nove dispara em 30.998 apps.\nUma lista mais longa sobre o mesmo app é uma lista mais longa. A causa maior é\nque alguns scanners tratam como problema qualquer chave que encontram no seu\nJavaScript, e algumas dessas chaves têm de estar ali.",[10,434,435,436,438,439,443],{},"A sua chave publicável do Supabase pertence ao seu frontend. Uma chave da Stripe\nque começa com ",[412,437,414],{}," também. As duas viajam para todo visitante por\ndesenho, porque o pedido que elas identificam sai do navegador do visitante, e\nnenhuma delas concede nada sozinha.\n",[58,440,442],{"href":441},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","Quais chaves são seguras no seu frontend","\né essa distinção inteira.",[10,445,446,447,450],{},"Em 7 de setembro de 2026, a home do VibeEval listava \"Stripe pk_live_ found in\n",[412,448,449],{},"\u002Fassets\u002Fapp.js","\" entre cinco achados de exemplo, marcado CRIT. Essa é uma chave\npublicável, exatamente no lugar onde a Stripe a publica. Não conseguimos ver os\nrelatórios que essas ferramentas mandam aos clientes de verdade, então leia isso\ncomo uma página de marketing e não como um veredito sobre o produto. É um exemplo\nlimpo do que conferir, e o dano não é aquela linha errada. Um scanner que te dá\num achado crítico por você ter feito uma coisa certa te ensina a dar de ombros no\npróximo, e o próximo é o achado de verdade.",[10,452,453,454,457,458,461,462,465],{},"Uma chave antiga do Supabase é um JWT, e a seção do meio dela diz\n",[412,455,456],{},"\"role\": \"anon\""," ou ",[412,459,460],{},"\"role\": \"service_role\""," em texto legível. A Reeve lê essa\npalavra. Uma chave publicável no seu bundle volta sob um título dizendo que isso\nvocê fez certo, sem te custar nada, e uma chave ",[412,463,464],{},"service_role"," no mesmo bundle é\na pior coisa que o scanner sabe achar. As duas são quase idênticas no painel do\nSupabase, uma do lado da outra, e é assim que a errada acaba copiada.",[78,467],{"alt":468,"caption":469,"src":470},"Dois painéis de relatório para um mesmo app. O da esquerda tem oito linhas, cada uma com uma cruz vermelha, incluindo uma linha rotulada pk_live_. O da direita tem quatro linhas: pk_live_ ao lado de um visto verde, uma cruz vermelha, uma cruz âmbar, e uma quarta linha cuja marca é uma caixa tracejada vazia.","Um app, dois relatórios. A linha que importa é a chave publicável, e a última linha da direita é uma verificação sem resposta, desenhada como nenhuma resposta.","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fsame-app-two-reports-1600x760.png",[38,472,33],{"id":473},"ela-avisa-quando-uma-verificação-não-obteve-resposta",[10,475,476],{},"A Reeve avisa, com essas palavras. Uma verificação termina de três jeitos e só um\ndeles é aprovação: ela acha alguma coisa, recebe um não claro, ou não recebe nada\nporque o pedido estourou o tempo, o servidor recusou, ou a página nunca terminou\nde carregar. Esse terceiro fim é a caixa vazia à direita na imagem acima. Ele sai\ncomo \"Não foi possível verificar\" e deixa a sua nota em paz.",[10,478,479],{},"Essa é a coisa mais silenciosa da página e a que decide se um relatório vale\nalguma coisa, porque uma sonda sem resposta parece exatamente uma sonda que\nvoltou limpa, assim que alguém a arredonda para um visto. Você agiria com base\nnesse visto. Atrás dele não há nada.",[10,481,482],{},"Fomos procurar a mesma promessa nos outros nove sites em 7 de setembro de 2026 e\nnão a encontramos em lugar nenhum. Isso não prova que algum deles arredonde para\ncima. É uma afirmação que nenhum coloca por escrito, e é a que gostaríamos de ter\npor escrito antes de acreditar num relatório verde sobre um app com que nos\nimportamos.",[10,484,485,486,490],{},"A mesma regra governa os números que a Reeve publica sobre todos os outros. Entre\n12 e 14 de agosto de 2026 rodamos as nove verificações sobre\n",[58,487,489],{"href":488},"\u002Fresearch\u002Fvibe-coded-app-security-2026","30.998 apps vibe-coded ao vivo","\nconstruídos com Lovable, Bolt, v0, Cursor, Replit, Windsurf e Base44, liberamos\ncada agregado sob CC BY 4.0 para qualquer um reutilizar, e anotamos com que\nfrequência cada verificação disparou, que fatia de apps ela não alcançou, e como\nessas foram contadas. Uma verificação sem resposta fica numa coluna própria e não\nna pilha limpa, então nada naquela página está inflado por contar silêncio como\nsegurança. A home do LaunchGuard publica 96 apps testados e 2,37 milhões de\nregistros expostos. Nenhum dos outros oito sites que lemos publicava número\nalgum.",[38,492,494],{"id":493},"o-que-acontece-no-dia-em-que-os-seus-dados-sumirem","O que acontece no dia em que os seus dados sumirem?",[10,496,497],{},"Nada, em nove das dez. Um scanner acha a porta aberta. Ele não consegue dizer\nquem já passou por ela, e não consegue devolver uma tabela que alguém esvaziou na\nterça.",[10,499,500],{},"O Reeve Care é a décima, e fechar essa lacuna é a razão de esta empresa existir.\nEle tira cópias do seu banco Supabase segundo um horário, abre cada cópia e a\nconta contra o que entrou antes de a cópia valer como backup, guarda as cópias\nfora da sua conta do Supabase para que um projeto suspenso ou um login que você\nnão recupera as deixe onde estão, e substitui os seus dados a partir de uma delas\nquando você pede. Antes de qualquer substituição, é tirada primeiro uma cópia do\nestado atual.",[10,502,503,504,508],{},"Os seus arquivos enviados viajam junto com as linhas assim que você conecta uma\ncredencial de Storage, que é uma segunda chave pedida à parte e a única que a\nReeve guarda capaz de escrever, porque o Supabase não emite nenhuma chave somente\nleitura para arquivos. ",[58,505,507],{"href":506},"\u002Fsupabase-backups","O que isso faz exatamente"," está\ndesenhado na página de backups.",[10,510,511,514],{},[20,512,513],{},"O Supabase é a única coisa que o Care consegue copiar",", então se os seus dados\nmoram no Firebase ou em outro lugar, esta seção inteira não está aberta para você\ne a metade que escaneia é o que a Reeve tem a oferecer. O Vibe App Scanner e o\nSafeToShip conferem as regras de segurança do Firebase, que é o equivalente mais\npróximo nesta página.",[38,516,518],{"id":517},"o-que-você-leva-por-uma-assinatura-mensal","O que você leva por uma assinatura mensal?",[10,520,521],{},"Em nove das dez, mais escaneamentos. Na Reeve, os escaneamentos mais o que\nacontece depois que um deles acha alguma coisa.",[523,524,525],"comparison-table",{},[91,526,527,542],{},[94,528,529],{},[97,530,531,533,536,539],{},[100,532],{},[100,534,535],{},"Uma assinatura de escaneamento",[100,537,538],{},"Reeve Monitor",[100,540,541],{},"Reeve Care",[116,543,544,557,570,582,594,608,620,631,643,655,666,679,692],{},[97,545,546,549,552,555],{},[121,547,548],{},"Reescaneamentos por horário",[121,550,551],{},"Sim, nos planos pagos",[121,553,554],{},"De hora em hora",[121,556,554],{},[97,558,559,562,565,568],{},[121,560,561],{},"Verificações de disponibilidade",[121,563,564],{},"CheckVibe, a cada 60 segundos",[121,566,567],{},"A cada 60 segundos",[121,569,567],{},[97,571,572,575,578,580],{},[121,573,574],{},"Alerta quando algo muda",[121,576,577],{},"Em alguns",[121,579,135],{},[121,581,135],{},[97,583,584,587,590,592],{},[121,585,586],{},"Um relatório mensal",[121,588,589],{},"Em nenhum que lemos",[121,591,135],{},[121,593,135],{},[97,595,596,599,602,605],{},[121,597,598],{},"Apps incluídos",[121,600,601],{},"Varia",[121,603,604],{},"Três",[121,606,607],{},"Um, cinco no Pro",[97,609,610,613,615,617],{},[121,611,612],{},"Uma cópia do seu banco de dados",[121,614,169],{},[121,616,169],{},[121,618,619],{},"Diária",[97,621,622,625,627,629],{},[121,623,624],{},"Relida antes de contar",[121,626,169],{},[121,628,169],{},[121,630,135],{},[97,632,633,636,638,640],{},[121,634,635],{},"Pontos de restauração guardados",[121,637,169],{},[121,639,169],{},[121,641,642],{},"30, 90 no Pro",[97,644,645,648,650,652],{},[121,646,647],{},"Os seus arquivos enviados",[121,649,169],{},[121,651,169],{},[121,653,654],{},"Com uma chave Storage",[97,656,657,660,662,664],{},[121,658,659],{},"Devolver é um botão",[121,661,169],{},[121,663,169],{},[121,665,135],{},[97,667,668,671,674,676],{},[121,669,670],{},"O que consegue copiar",[121,672,673],{},"Nada",[121,675,673],{},[121,677,678],{},"Só Supabase",[97,680,681,684,687,690],{},[121,682,683],{},"Teste grátis",[121,685,686],{},"7 a 14 dias em alguns",[121,688,689],{},"7 dias",[121,691,689],{},[97,693,694,697,700,703],{},[121,695,696],{},"Preço quando lemos",[121,698,699],{},"$24 a $49 por mês",[121,701,702],{},"$12 por mês",[121,704,705],{},"$49 por mês",[10,707,708,709,713],{},"Esses números dos outros são os que os cinco vendedores que publicam algum\nmostravam em 7 de setembro de 2026: SafeToShip $24, Vibe App Scanner $29 ou $49,\nVibeEval $49 com um plano de equipe de $149, Defencecore $29 e SupaExplorer mais\nabaixo, em $6.75 atrás de um banner de desconto. CheckVibe e LaunchGuard não\npublicam número nenhum. Leia o preço atual na página do próprio vendedor antes de\ncomprar qualquer coisa, e isso inclui ",[58,710,712],{"href":711},"\u002Fpricing","o nosso",", que às vezes fica\nabaixo do número de tabela daqui e nunca acima.",[10,715,716],{},"Todo plano pago aqui dá para testar antes de cobrar. A Reeve te dá sete dias, o\nDefencecore sete, e o VibeEval anuncia catorze sem cartão. Os outros não dizem\nnas páginas de preço deles.",[10,718,719,720,723,724,727],{},"Duas coisas saem dessa última linha. ",[20,721,722],{},"O Reeve Monitor custa $12 por mês"," por\ntrês apps, abaixo de todo plano pago daqui menos um com desconto, e é a metade da\nvigilância inteira: reescaneamentos de hora em hora, uma sonda de disponibilidade\na cada 60 segundos, alertas quando algo muda e um relatório mensal. E ",[20,725,726],{},"o Reeve\nCare custa $49 por mês",", que é exatamente o que cobram o VibeEval Pro e o Vibe\nApp Scanner Pro, sendo a única assinatura da página que também guarda uma cópia\nverificada do seu banco de dados e a devolve quando você pede. Acima disso, o\nCare Pro a $79 acrescenta cinco apps, backups duas vezes por dia e uma página de\nstatus pública, e o Care Max a $139 os tira quatro vezes por dia e fica abaixo do\nplano de equipe do VibeEval, de $149.",[38,729,731],{"id":730},"onde-a-reeve-não-é-a-resposta","Onde a Reeve não é a resposta",[10,733,734],{},"Três trabalhos desta página que a Reeve não faz.",[736,737,738,744,750],"ul",{},[28,739,740,743],{},[20,741,742],{},"Ler o seu código-fonte."," O CheckVibe faz isso se você conectar o GitHub, e\nos scanners de segredos dedicados a esse trabalho vão mais fundo que qualquer\num de nós dois. É também o único jeito de achar uma chave que saiu do seu app\nmeses atrás e continua sentada no histórico dele.",[28,745,746,749],{},[20,747,748],{},"Testar o app logado."," O VibeEval dirige um navegador de verdade pelas telas\nde login, o Vibe App Scanner faz escaneamentos autenticados no plano mais alto\ndele, e o plano pago do LaunchGuard leva o Claude Code por cenários de\nautorização. A Reeve nunca faz login, nunca escreve e nunca baixa uma linha, o\nque é o que torna seguro apontá-la para um app em produção com clientes de\nverdade, e é também por isso que um bug que só aparece para um usuário logado\nfica invisível para ela.",[28,751,752,755],{},[20,753,754],{},"Ser aberta, ou ser dirigida pelo seu agente."," O Supabomb é de código aberto e\nescrito em Python. O Vibe App Scanner publica um servidor MCP, o CheckVibe leva\nos achados dele para o Claude ou o Cursor, e o advisor do Supabase é alcançável\npelo próprio servidor MCP do Supabase. A Reeve não publica nem o código nem um\nservidor MCP.",[10,757,758],{},"Onde a Reeve é a resposta: o seu app está no ar, você quer saber o que ele\nentrega a estranhos agora mesmo sem conectar conta nenhuma a nada, você quer um\nrelatório que diga o que você fez certo com a mesma clareza do que está aberto, e\ngostaria que alguém estivesse guardando uma cópia verificada do seu banco de\ndados no dia em que der errado.",[38,760,762],{"id":761},"o-que-você-está-entregando-quando-uma-ferramenta-lê-o-seu-código","O que você está entregando quando uma ferramenta lê o seu código?",[10,764,765],{},"Acesso permanente a tudo o que está no repositório, o que é uma coisa bem maior\nque o app.",[10,767,768,769,772,773,776,777,780],{},"O seu repositório não é o seu app. Ele guarda cada chave que você já comitou e\ndepois tirou, os arquivos de seed e de fixture com dados de cliente que parecem\nreais, o branch pela metade que ninguém publicou, e as instruções que você\nescreveu para o seu construtor de IA. Essa última surpreende as pessoas. O seu\n",[412,770,771],{},"CLAUDE.md",", os seus ",[412,774,775],{},".cursorrules",", o seu ",[412,778,779],{},"AGENTS.md",", o prompt longo que\ndescreve como o produto deve se comportar: isso é o seu pensamento de produto, em\ntexto puro, dentro do repositório. Um escaneamento de URL vê o app que os seus\nvisitantes veem. Uma conexão ao repositório vê tudo isso, e agora uma segunda\nempresa guarda uma cópia.",[10,782,783],{},"Três coisas para conferir antes de conceder um:",[736,785,786,792,798],{},[28,787,788,791],{},[20,789,790],{},"É acesso permanente e não uma visita."," Um GitHub App ou uma autorização\nOAuth continua funcionando até você ir lá revogar, então também lê o que você\npublicar mês que vem. Descubra se dá para limitar a um repositório, e ache o\nbotão de revogar antes de precisar dele.",[28,793,794,797],{},[20,795,796],{},"A brecha deles vira a sua."," Tudo o que um fornecedor guarda sobre você fica\nexposto quando o fornecedor fica. O Defencecore faz exatamente esse argumento a\nfavor de si mesmo na própria página, e é um bom argumento: uma ferramenta que\nsó lê pode \"never become the incident\".",[28,799,800,803],{},[20,801,802],{},"Uma ferramenta que faz login pode mudar coisas."," Um scanner que dirige um\nnavegador pelo seu login faz o que um usuário faz, sobre os seus dados ao vivo.\nLeia o que ele diz que vai clicar e o que não vai.",[10,805,806],{},"Isso é uma troca e não um aviso. Um scanner de repositório acha a chave que você\napagou em abril e nada que leia o seu site ao vivo vai achar, então se essa é a\nsua pergunta, o acesso é o que custa a resposta.",[38,808,810],{"id":809},"qual-você-deveria-escolher","Qual você deveria escolher?",[10,812,813],{},"Cinco situações, e duas delas não terminam com a gente.",[736,815,816,826,832,838,844],{},[28,817,818,821,825],{},[20,819,820],{},"Você quer saber agora e de graça o que o seu app mostra a um estranho.",[58,822,824],{"href":823},"\u002Fsecurity-scanner","O escaneamento da Reeve"," ou o LaunchGuard. Nenhum dos dois\npede cadastro, e os dois voltam em menos de um minuto. SafeToShip e SupaExplorer\ntambém escaneiam sem conta.",[28,827,828,831],{},[20,829,830],{},"Você está no Supabase e nunca abriu o Security Advisor."," Esse primeiro,\nantes de qualquer coisa com preço nesta página. Ele é grátis e lê o que nenhum\nescaneamento de fora consegue ler.",[28,833,834,837],{},[20,835,836],{},"Você quer o seu código-fonte lido, ou o app testado logado."," CheckVibe para\no repositório, VibeEval ou o plano mais alto do Vibe App Scanner para o que\nestá atrás do login. Leia a seção acima sobre o que esse acesso custa antes de\nconcedê-lo.",[28,839,840,843],{},[20,841,842],{},"Você quer o app vigiado e está contando cada centavo."," Reeve Monitor, $12\npor mês por três apps: reescaneamentos de hora em hora, uma sonda de\ndisponibilidade a cada 60 segundos, alertas e um relatório mensal, e nenhum\nbackup.",[28,845,846,849],{},[20,847,848],{},"Você tem clientes de verdade e ninguém que vá rodar uma restauração sob\npressão."," Reeve Care, $49 por mês, que é o escaneamento e a vigilância e uma\ncópia verificada do seu banco de dados que volta com um botão. Se os seus dados\nnão estão no Supabase, a metade dos backups não se aplica a você.",[38,851,853],{"id":852},"o-que-fazer-esta-semana","O que fazer esta semana",[855,856,857],"key-takeaways",{},[736,858,859,862,865,868,871,874],{},[28,860,861],{},"Abra o seu Supabase Security Advisor antes de pagar qualquer um. Ele é grátis, já está no seu painel, e lê coisas que nenhum escaneamento de fora alcança.",[28,863,864],{},"Passe dois scanners de URL grátis pelo mesmo app e ponha os relatórios lado a lado. Onde eles discordarem é onde um dos dois está chutando.",[28,866,867],{},"Veja o que cada um diz sobre a chave publicável do seu bundle. Uma ferramenta que marca essa como crítica vai marcar tudo como crítico, e você vai aprender a ignorar tudo.",[28,869,870],{},"Leia as linhas que dizem que uma verificação não pôde rodar antes das que dizem que uma passou. Um relatório sem nenhuma linha dessas não está te dizendo que não houve nenhuma.",[28,872,873],{},"Antes de conectar um repositório ou uma conta do Supabase a qualquer coisa, confira o que a autorização cobre, se dá para limitar a um projeto, e onde fica o botão de revogar.",[28,875,876],{},"Decida à parte quem guarda uma cópia do seu banco de dados. Nove das dez ferramentas acima param em te contar, e as assinaturas altas de só escanear custam o mesmo que a única que não para.",[10,878,879,882,883,886,887,891],{},[58,880,881],{"href":823},"O escaneamento de segurança grátis da Reeve"," lê uma URL ao\nvivo em uns vinte segundos sem conta, dá nota ao que encontrou, e lista o que\nvocê fez certo ao lado do que está aberto. Ter um app vigiado depois começa em\n$12 por mês, e os backups com restauração de um botão em $49;\n",[58,884,885],{"href":711},"os planos estão aqui",". Se você prefere primeiro passar o olho no seu\napp sozinho, ",[58,888,890],{"href":889},"\u002Fchecklist","o checklist de segurança de 10 minutos"," cobre o mesmo\nterreno sem uma ferramenta no meio.",{"title":893,"searchDepth":894,"depth":894,"links":895},"",3,[896,898,899,900,901,902,903,904,905,906,907],{"id":40,"depth":897,"text":41},2,{"id":85,"depth":897,"text":86},{"id":284,"depth":897,"text":285},{"id":425,"depth":897,"text":426},{"id":473,"depth":897,"text":33},{"id":493,"depth":897,"text":494},{"id":517,"depth":897,"text":518},{"id":730,"depth":897,"text":731},{"id":761,"depth":897,"text":762},{"id":809,"depth":897,"text":810},{"id":852,"depth":897,"text":853},"Noções de segurança","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcover-1200x630.png","Uma lupa à esquerda lança arcos de sonar sobre um campo espalhado de janelas de aplicativo, cada arco mais fraco que o anterior.","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.",false,"md",[915,918,921,924,927,930],{"q":916,"a":917},"Qual scanner de segurança para vibe coding é grátis?","Vários escaneiam sem cobrar, e cada um entende uma coisa diferente por isso. O Supabase Security Advisor é totalmente grátis e mora no painel em que você já entra. Cinco escaneiam sem conta nenhuma: Reeve, LaunchGuard, SupaExplorer, SafeToShip, cuja página de preços diz \"no account needed\", e Supabomb, porque você o roda na sua própria máquina. Desses cinco, LaunchGuard, SupaExplorer e Supabomb também mostram o relatório inteiro de graça, enquanto a Reeve mostra a nota, a pontuação e as contagens em uns vinte segundos e pede um e-mail antes dos achados detalhados, e o SafeToShip cobra $9 por eles. O CheckVibe manda você para uma página de cadastro, e VibeEval e Defencecore deixam o relatório atrás de um teste.",{"q":919,"a":920},"Quanto custa um scanner de segurança para vibe coding?","Entre $24 e $49 por mês nos cinco que publicavam um número quando os lemos em 7 de setembro de 2026: SafeToShip $24, Vibe App Scanner $29 ou $49, VibeEval $49 com um plano de equipe de $149, Defencecore $29 e SupaExplorer mais abaixo, em $6.75 atrás de um banner de desconto. O Reeve Monitor custa $12 por mês por reescaneamentos de hora em hora, verificações de disponibilidade a cada 60 segundos, alertas e um relatório mensal sobre três apps, o que fica abaixo de todo plano pago acima menos o com desconto. O Reeve Care custa $49, o mesmo que cobram os planos altos de só escanear, e acrescenta cópias diárias do seu banco Supabase que são relidas antes de contarem, com restauração de um botão. Confira cada número na página do vendedor antes de comprar, a nossa incluída.",{"q":922,"a":923},"Algum deles precisa da senha do meu banco de dados?","Nenhum dos scanners de URL, a Reeve incluída. Eles leem o seu app de fora, então não há nada a conectar. O Defencecore pede que você autorize acesso somente leitura aos logs de um projeto Supabase, o que é uma permissão de conta e não a sua senha. O Supabase Security Advisor precisa do seu login do Supabase porque faz parte do Supabase. O Supabomb é uma ferramenta de linha de comando que você mesmo roda, então o que ele recebe depende de você.",{"q":925,"a":926},"Quais detectam problemas de RLS no Supabase?","A maioria desta lista diz que sim, e encontram coisas diferentes. Um scanner de URL como a Reeve pergunta ao seu projeto se um pedido anônimo recebe linhas de volta, que é a consequência, e lê a contagem de um cabeçalho de resposta sem trazer uma única linha. O Supabase Security Advisor lê a configuração e informa as tabelas com Row Level Security desligada ou deixada sem política, que é a causa. As duas coisas se separam mais do que se imagina, então um advisor limpo e um scanner achando linhas nessa mesma tabela não se contradizem.",{"q":928,"a":929},"Por que uma ferramenta diz 40 problemas e outra diz 2?","Porque contam com réguas diferentes. As ferramentas anunciam de nove verificações a mais de cem, e uma lista mais longa produz um relatório mais longo sobre o mesmo app. A causa maior é que alguns scanners tratam como problema qualquer chave que encontram no seu JavaScript, incluindo as publicáveis, que têm de estar ali. A Reeve decodifica a chave e lê o papel escrito dentro dela, então uma chave publicável volta como algo que você fez certo e não como um achado. Veja o que cada ferramenta diz da sua chave publicável do Supabase antes de acreditar no total dela.",{"q":931,"a":932},"Este comparativo é enviesado?","Sim. A Reeve é uma das dez ferramentas da tabela e nós a fazemos, então leia a página sabendo disso. O que fizemos a respeito: nomear os três trabalhos desta página que a Reeve não faz, mandar você para a ferramenta grátis do seu próprio painel do Supabase antes de qualquer paga, imprimir os preços dos outros ao lado do nosso, e publicar todo o conjunto de dados por trás das nossas verificações sob licença aberta para que as afirmações possam ser auditadas. Cada linha foi lida na página do próprio vendedor em 7 de setembro de 2026 e nenhuma está com link, então aqui não há nada patrocinado.","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",[935,936,937,938,939,940,941,942],"melhor scanner de segurança para vibe coding","comparativo de scanners de segurança vibe coding","alternativa ao checkvibe","alternativa ao vibe app scanner","alternativa ao launchguard","comparativo scanner de segurança supabase","scanner de segurança grátis ou pago","AI app security tools 2026",{},true,"Scanners de segurança para vibe coding comparados","\u002Fblog\u002Fvibe-coding-security-scanners-compared","2026-09-07",{"title":5,"description":911},"blog\u002Fvibe-coding-security-scanners-compared",[951,952,953],"Não existe um único melhor scanner de segurança para vibe coding, porque a maioria lê a mesma superfície e se diferencia no que faz com ela. Sete dos dez aqui funcionam apenas com uma URL.","Três perguntas os separam: se a ferramenta distingue uma chave que pertence ao seu app de uma que não pertence, se avisa quando uma verificação não obteve resposta, e se depois alguma coisa devolve os seus dados.","A Reeve responde sim às três, por $12 por mês para vigiar um app e $49 para copiá-lo, que é o que as assinaturas de só escanear cobram aqui para não fazer nenhuma das duas. Nós a fazemos, então os três trabalhos que a Reeve não faz estão nomeados perto do fim.","8MyhZML_j39ds3jURcM5Tt3AKkLohntHIX-Nz0sJdbs",[956,963,969,975,981,987,993,999,1005,1011,1017,1023,1029,1035,1041,1047,1053,1054,1060,1065,1071,1077,1083,1089,1095,1101,1107,1113,1119,1125,1131,1137,1143,1149,1155,1161,1166,1172,1178,1183,1188,1194],{"path":957,"title":958,"description":959,"published":960,"category":961,"image":962,"draft":912},"\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":964,"title":965,"description":966,"published":967,"category":908,"image":968,"draft":912},"\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":970,"title":971,"description":972,"published":973,"category":908,"image":974,"draft":912},"\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.","2026-09-21","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":976,"title":977,"description":978,"published":979,"category":908,"image":980,"draft":912},"\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":982,"title":983,"description":984,"published":985,"category":908,"image":986,"draft":912},"\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":988,"title":989,"description":990,"published":991,"category":908,"image":992,"draft":912},"\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":994,"title":995,"description":996,"published":997,"category":908,"image":998,"draft":912},"\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":1000,"title":1001,"description":1002,"published":1003,"category":908,"image":1004,"draft":912},"\u002Fblog\u002Fis-cursor-ai-safe","O Cursor AI é seguro? O editor, o código e o app que você publicou","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.","2026-09-16","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",{"path":1006,"title":1007,"description":1008,"published":1009,"category":908,"image":1010,"draft":912},"\u002Fblog\u002Fis-replit-safe","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":1012,"title":1013,"description":1014,"published":1015,"category":961,"image":1016,"draft":912},"\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":1018,"title":1019,"description":1020,"published":1021,"category":961,"image":1022,"draft":912},"\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":1024,"title":1025,"description":1026,"published":1027,"category":961,"image":1028,"draft":912},"\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":1030,"title":1031,"description":1032,"published":1033,"category":908,"image":1034,"draft":912},"\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":1036,"title":1037,"description":1038,"published":1039,"category":908,"image":1040,"draft":912},"\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":1042,"title":1043,"description":1044,"published":1045,"category":908,"image":1046,"draft":912},"\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":1048,"title":1049,"description":1050,"published":1051,"category":908,"image":1052,"draft":912},"\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":946,"title":5,"description":911,"published":947,"category":908,"image":933,"draft":912},{"path":1055,"title":1056,"description":1057,"published":1058,"category":908,"image":1059,"draft":912},"\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":60,"title":1061,"description":1062,"published":1063,"category":908,"image":1064,"draft":912},"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":1066,"title":1067,"description":1068,"published":1069,"category":908,"image":1070,"draft":912},"\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":1072,"title":1073,"description":1074,"published":1075,"category":908,"image":1076,"draft":912},"\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":1078,"title":1079,"description":1080,"published":1081,"category":908,"image":1082,"draft":912},"\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":1084,"title":1085,"description":1086,"published":1087,"category":961,"image":1088,"draft":912},"\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":1090,"title":1091,"description":1092,"published":1093,"category":908,"image":1094,"draft":912},"\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":1096,"title":1097,"description":1098,"published":1099,"category":961,"image":1100,"draft":912},"\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":1102,"title":1103,"description":1104,"published":1105,"category":908,"image":1106,"draft":912},"\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":1108,"title":1109,"description":1110,"published":1111,"category":908,"image":1112,"draft":912},"\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":1114,"title":1115,"description":1116,"published":1117,"category":908,"image":1118,"draft":912},"\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":1120,"title":1121,"description":1122,"published":1123,"category":908,"image":1124,"draft":912},"\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":1126,"title":1127,"description":1128,"published":1129,"category":961,"image":1130,"draft":912},"\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":1132,"title":1133,"description":1134,"published":1135,"category":961,"image":1136,"draft":912},"\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":1138,"title":1139,"description":1140,"published":1141,"category":908,"image":1142,"draft":912},"\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":1144,"title":1145,"description":1146,"published":1147,"category":908,"image":1148,"draft":912},"\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":1150,"title":1151,"description":1152,"published":1153,"category":961,"image":1154,"draft":912},"\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":1156,"title":1157,"description":1158,"published":1159,"category":908,"image":1160,"draft":912},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","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":1162,"title":1163,"description":1164,"published":1159,"category":908,"image":1165,"draft":912},"\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":1167,"title":1168,"description":1169,"published":1170,"category":908,"image":1171,"draft":912},"\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":1173,"title":1174,"description":1175,"published":1176,"category":961,"image":1177,"draft":912},"\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":74,"title":1179,"description":1180,"published":1181,"category":908,"image":1182,"draft":912},"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":1184,"title":1185,"description":1186,"published":1181,"category":961,"image":1187,"draft":912},"\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":1189,"title":1190,"description":1191,"published":1192,"category":961,"image":1193,"draft":912},"\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":441,"title":1195,"description":1196,"published":1192,"category":908,"image":1197,"draft":912},"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",1790150955873]