[{"data":1,"prerenderedAt":1201},["ShallowReactive",2],{"blog-it-vibe-coding-security-scanners-compared":3,"blog-index-it":958},{"id":4,"title":5,"body":6,"category":911,"cover":912,"coverAlt":913,"description":914,"draft":915,"extension":916,"faq":917,"image":936,"keywords":937,"meta":946,"navigation":947,"ogTitle":948,"path":949,"published":950,"seo":951,"stem":952,"tldr":953,"updated":950,"__hash__":957},"blog_it\u002Fblog\u002Fvibe-coding-security-scanners-compared.md","Scanner di sicurezza per vibe coding a confronto, il nostro incluso",{"type":7,"value":8,"toc":895},"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,720,731,735,738,759,762,766,769,784,787,807,810,814,817,853,857,880],[10,11,12],"p",{},"Hai scritto \"miglior scanner di sicurezza per vibe coding\" in un motore di\nricerca, e il primo confronto tornato indietro era stato scritto da uno degli\nscanner. L'avviso c'era, su una riga sotto la tabella.",[10,14,15],{},"Reeve è uno dei dieci strumenti qui sotto, quindi questa pagina ha lo stesso\nproblema. Reeve è uno scanner di sicurezza gratuito che legge un URL dal vivo in\nuna ventina di secondi senza account, e un abbonamento a pagamento che continua a\nsorvegliare l'app dopo e tiene una copia verificata del suo database. Quello che\npossiamo fare del conflitto è mostrare il lavoro. Ogni riga è stata letta sul\nsito del venditore il 7 settembre 2026, ogni prezzo è stampato compreso il\nnostro, qui non c'è nulla di sponsorizzato, e verso la fine c'è una sezione che\nnomina i tre lavori di questa pagina che Reeve non fa affatto.",[10,17,18,19,23],{},"Ecco che cosa lasciano fuori i confronti scritti dai fornitori. ",[20,21,22],"strong",{},"Quasi tutti\nquesti strumenti leggono la stessa superficie."," Caricano la tua app dal vivo, si\nscaricano il JavaScript che manda al browser, leggono gli header arrivati con\nesso, fanno al tuo database una domanda che potrebbe fare qualsiasi estraneo, e\nscrivono che cosa ha risposto. La scansione è la parte che hanno in comune. Tre\ndomande li separano:",[25,26,27,31,34],"ol",{},[28,29,30],"li",{},"Distingue una chiave che appartiene alla tua app da una che non le appartiene?",[28,32,33],{},"Lo dice quando un controllo non ha ricevuto risposta?",[28,35,36],{},"Succede qualcosa il giorno in cui i tuoi dati davvero non ci sono più?",[38,39,41],"h2",{"id":40},"qual-è-il-miglior-scanner-di-sicurezza-per-vibe-coding","Qual è il miglior scanner di sicurezza per vibe coding?",[10,43,44],{},"Quello che sa leggere la superficie su cui sta il tuo problema. Questa domanda\nordina l'elenco più in fretta di qualsiasi lista di funzioni, e divide dieci\nstrumenti in tre gruppi.",[10,46,47,50],{},[20,48,49],{},"Strumenti a cui dai un URL."," SafeToShip, LaunchGuard, Vibe App Scanner,\nVibeEval, SupaExplorer e Reeve. Incolli un indirizzo, caricano la tua app come\nfarebbe un visitatore, e in un minuto o due torna un rapporto. Niente da\ninstallare, nessun account da collegare, nessun accesso a niente di tuo.",[10,52,53,56,57,62],{},[20,54,55],{},"Strumenti a cui dai il tuo codice."," CheckVibe legge un URL dal vivo e si\ncollega anche a un repository GitHub se glielo permetti. Leggere il sorgente\nrisponde a domande che una scansione di URL non può fare, e porta con sé un\nproprio punto cieco, ed è per questo che\n",[58,59,61],"a",{"href":60},"\u002Fblog\u002Fvibe-coding-security-scanner","che cosa si perde una scansione di URL","\nvale la pena prima di pagare per l'uno o per l'altro.",[10,64,65,68],{},[20,66,67],{},"Strumenti a cui dai il tuo account Supabase."," Il Security Advisor di Supabase\nstesso vive nella tua dashboard e legge la configurazione del progetto.\nDefencecore chiede accesso in sola lettura ai log di un progetto e poi li\nsorveglia. Supabomb è uno strumento a riga di comando open source scritto per\nchi lo fa di mestiere. Tutti e tre raggiungono dall'interno dell'account cose che\nniente di posto fuori dalla tua app può vedere.",[10,70,71,72,76],{},"Se sei su Supabase e non hai mai aperto il Security Advisor, apri quello prima di\npagare chiunque su questa pagina. È gratuito, gira da solo, e scrive al\nproprietario del progetto quando compare una tabella con la Row Level Security\nspenta. E non è nemmeno un concorrente di niente qui: legge la tua\nconfigurazione, mentre una scansione legge che cosa sta facendo la tua\nconfigurazione agli estranei, e\n",[58,73,75],{"href":74},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","le due cose divergono"," più spesso\ndi quanto chiunque si aspetti.",[78,79],"diagram",{"alt":80,"caption":81,"src":82},"Una griglia tre per tre. Ogni riga si apre con quello che viene consegnato a uno strumento: un globo, una coppia di parentesi angolari, una chiave. Ogni colonna è una superficie che potrebbe leggere: una finestra di applicazione, codice sorgente, un database accanto a un secchio di archiviazione. In ogni riga una cella è accesa e le altre due sono contorni tratteggiati, così le celle accese cadono sulla diagonale.","Che cosa viene consegnato a ogni tipo di strumento e che cosa gli permette di leggere. Uno strumento di questa pagina compra due di queste righe. Nessuno le compra tutte e tre.","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fwhat-you-hand-it-1600x700.png",[38,84,86],{"id":85},"che-cosa-legge-davvero-ogni-scanner","Che cosa legge davvero ogni scanner?",[10,88,89],{},"Sette dei dieci girano con nient'altro che un URL. Gli altri tre vogliono\nqualcosa per consegnare il quale bisogna fare login, ed è la colonna da leggere\nprima di qualsiasi elenco di funzioni. Le due a destra decidono se puoi provare\nuno strumento stamattina: cinque scansionano senza alcun account, e quattro di\nquei cinque ti mostrano il rapporto intero.",[91,92,93,115],"table",{},[94,95,96],"thead",{},[97,98,99,103,106,109,112],"tr",{},[100,101,102],"th",{},"Strumento",[100,104,105],{},"Che cosa legge",[100,107,108],{},"Che cosa gli consegni",[100,110,111],{},"Scansione senza registrarsi",[100,113,114],{},"Risultati completi gratis",[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],{},"La configurazione del tuo progetto",[121,128,129],{},"Il tuo accesso Supabase",[121,131,132],{},"È il tuo stesso account",[121,134,135],{},"Sì",[97,137,138,141,144,147,150],{},[121,139,140],{},"CheckVibe",[121,142,143],{},"La tua app dal vivo, e il repository se lo colleghi",[121,145,146],{},"Un URL, e GitHub se vuoi",[121,148,149],{},"No, il suo pulsante è \u002Fsignup",[121,151,152],{},"No, lo apre un piano",[97,154,155,158,161,164,167],{},[121,156,157],{},"Defencecore",[121,159,160],{},"I tuoi log Supabase",[121,162,163],{},"Accesso in sola lettura ai log di un progetto",[121,165,166],{},"No, vuole una prova",[121,168,169],{},"No",[97,171,172,175,178,181,183],{},[121,173,174],{},"LaunchGuard",[121,176,177],{},"La tua app dal vivo",[121,179,180],{},"Un URL",[121,182,135],{},[121,184,185],{},"Sì, per ciò che scansiona",[97,187,188,191,193,195,197],{},[121,189,190],{},"Reeve",[121,192,177],{},[121,194,180],{},[121,196,135],{},[121,198,199],{},"No, prima una e-mail",[97,201,202,205,207,209,212],{},[121,203,204],{},"SafeToShip",[121,206,177],{},[121,208,180],{},[121,210,211],{},"Sì, \"no account needed\"",[121,213,214],{},"No, $9 o un piano",[97,216,217,220,223,225,227],{},[121,218,219],{},"SupaExplorer",[121,221,222],{},"La tua app dal vivo, o un progetto che colleghi",[121,224,180],{},[121,226,135],{},[121,228,135],{},[97,230,231,234,237,240,243],{},[121,232,233],{},"Supabomb",[121,235,236],{},"Il tuo progetto Supabase, da riga di comando",[121,238,239],{},"Credenziali che fornisci tu",[121,241,242],{},"Lo esegui tu",[121,244,245],{},"Sì, è open source",[97,247,248,251,254,256,259],{},[121,249,250],{},"Vibe App Scanner",[121,252,253],{},"La tua app dal vivo, autenticato sul piano più alto",[121,255,180],{},[121,257,258],{},"La sua pagina non lo dice",[121,260,261],{},"No, una scansione, in parte",[97,263,264,267,270,272,274],{},[121,265,266],{},"VibeEval",[121,268,269],{},"La tua app dal vivo, anche pagine dietro un login",[121,271,180],{},[121,273,166],{},[121,275,169],{},[10,277,278],{},"Ogni riga è stata letta sulle pagine dello strumento stesso il 7 settembre 2026.\nÈ una categoria giovane e le pagine si muovono, quindi tratta la riga come più\nvecchia del sito da cui viene.",[10,280,281],{},"È a quella tabella che si fermano quasi tutti i confronti, ed è la parte che\nsepara meno questi strumenti.",[38,283,285],{"id":284},"le-tre-domande-strumento-per-strumento","Le tre domande, strumento per strumento",[10,287,288],{},"Reeve è l'unico dei dieci che risponde sì a tutte e tre.",[91,290,291,306],{},[94,292,293],{},[97,294,295,297,300,303],{},[100,296,102],{},[100,298,299],{},"Distingue chiave pubblicabile da segreta",[100,301,302],{},"Dice quando un controllo non ha risposto",[100,304,305],{},"Può rimettere a posto i dati",[116,307,308,321,331,342,352,362,372,383,394,404],{},[97,309,310,312,315,318],{},[121,311,190],{},[121,313,314],{},"Sì, decodifica il ruolo della chiave",[121,316,317],{},"Sì, stampa \"Impossibile controllare\"",[121,319,320],{},"Sì, con abbonamento",[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],{},"Non è il suo mestiere",[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],{},"Non si applica, sta dentro",[121,382,169],{},[97,384,385,387,390,392],{},[121,386,233],{},[121,388,389],{},"Leggeresti il sorgente",[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],{},"Ha elencato una chiave ",[412,413,414],"code",{},"pk_live_"," come CRIT",[121,417,258],{},[121,419,169],{},[10,421,422],{},"\"La sua pagina non lo dice\" vuol dire esattamente quello. Possiamo leggere quello\nche questi strumenti pubblicano su sé stessi; il rapporto che riceveresti tu non\npossiamo vederlo. Le tre sezioni qui sotto spiegano ogni colonna e ti danno un\nmodo per verificarlo sulla tua app, scansionandola con due di questi strumenti e\nleggendo i due rapporti affiancati.",[38,424,426],{"id":425},"distingue-le-tue-chiavi-sicure-da-quelle-pericolose","Distingue le tue chiavi sicure da quelle pericolose?",[10,428,429],{},"Reeve sì, decodificando la chiave e leggendo il ruolo scritto dentro. Quella\nsingola capacità è la differenza tra un rapporto su cui puoi agire e un elenco di\nquaranta cose davanti a cui impari a scorrere oltre.",[10,431,432],{},"Parti dal perché i conteggi divergano così tanto. Un numero di controlli è una\ncifra di marketing e non una misura: CheckVibe ne pubblicizza oltre cento, Reeve\nne esegue nove e pubblica quanto spesso ciascuno dei nove scatta su 30.998 app.\nUn elenco più lungo sulla stessa app è un elenco più lungo. La causa maggiore è\nche alcuni scanner trattano come problema ogni chiave che trovano nel tuo\nJavaScript, e alcune di quelle chiavi lì ci devono stare.",[10,434,435,436,438,439,443],{},"La tua chiave pubblicabile Supabase appartiene al tuo frontend. Anche una chiave\nStripe che comincia con ",[412,437,414],{},". Entrambe viaggiano verso ogni visitatore per\nprogetto, perché la richiesta che identificano parte dal browser del visitatore,\ne nessuna delle due concede qualcosa da sola.\n",[58,440,442],{"href":441},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","Quali chiavi sono sicure nel tuo frontend","\nè quella distinzione per intero.",[10,445,446,447,450],{},"Il 7 settembre 2026 la home di VibeEval elencava \"Stripe pk_live_ found in\n",[412,448,449],{},"\u002Fassets\u002Fapp.js","\" tra cinque risultati di esempio, contrassegnato CRIT. Quella è\nuna chiave pubblicabile, nel posto esatto in cui Stripe la pubblica. Non possiamo\nvedere i rapporti che questi strumenti mandano ai loro clienti veri, quindi\nleggilo come una pagina di marketing e non come un verdetto sul prodotto. È un\nesempio pulito della cosa da verificare, e il danno non è quella riga sbagliata.\nUno scanner che ti dà un risultato critico per aver fatto qualcosa bene ti insegna\na scrollare le spalle al successivo, e il successivo è il risultato vero.",[10,452,453,454,457,458,461,462,465],{},"Una vecchia chiave Supabase è un JWT, e la sua sezione centrale dice\n",[412,455,456],{},"\"role\": \"anon\""," oppure ",[412,459,460],{},"\"role\": \"service_role\""," in testo leggibile. Reeve legge\nquella parola. Una chiave pubblicabile nel tuo bundle torna sotto un titolo che\ndice che questo lo hai fatto bene, senza costarti nulla, e una chiave\n",[412,463,464],{},"service_role"," nello stesso bundle è la cosa peggiore che lo scanner sappia\ntrovare. Le due si somigliano moltissimo nella dashboard di Supabase, una accanto\nall'altra, ed è così che finisce copiata quella sbagliata.",[78,467],{"alt":468,"caption":469,"src":470},"Due pannelli di rapporto per una stessa app. Quello a sinistra ha otto righe, ciascuna con una croce rossa, compresa una riga etichettata pk_live_. Quello a destra ha quattro righe: pk_live_ accanto a un segno di spunta verde, una croce rossa, una croce ambra, e una quarta riga il cui segno è una casella tratteggiata vuota.","Una app, due rapporti. La riga che conta è la chiave pubblicabile, e l'ultima riga a destra è un controllo senza risposta, disegnato come nessuna risposta.","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fsame-app-two-reports-1600x760.png",[38,472,33],{"id":473},"lo-dice-quando-un-controllo-non-ha-ricevuto-risposta",[10,475,476],{},"Reeve lo fa, con quelle parole. Un controllo finisce in tre modi e solo uno è un\nesito positivo: trova qualcosa, riceve un no chiaro, oppure non riceve nulla\nperché la richiesta è scaduta, l'host l'ha rifiutata, o la pagina non ha mai\nfinito di caricare. Quel terzo finale è la casella vuota a destra nell'immagine\nqui sopra. Si stampa come \"Impossibile controllare\" e lascia stare il tuo voto.",[10,478,479],{},"È la cosa più silenziosa della pagina e quella che decide se un rapporto vale\nqualcosa, perché una sonda senza risposta somiglia esattamente a una sonda\ntornata pulita, una volta che qualcuno l'ha arrotondata a un segno di spunta. Tu\nagiresti su quel segno. Dietro non c'è niente.",[10,481,482],{},"Siamo andati a cercare la stessa promessa sugli altri nove siti il 7 settembre\n2026 e non l'abbiamo trovata da nessuna parte. Questo non prova che qualcuno di\nloro arrotondi. È un'affermazione che nessuno mette per iscritto, ed è quella che\nvorremmo per iscritto prima di credere a un rapporto verde su un'app a cui\nteniamo.",[10,484,485,486,490],{},"La stessa regola governa i numeri che Reeve pubblica su tutti gli altri. Tra il\n12 e il 14 agosto 2026 abbiamo passato tutti e nove i controlli su\n",[58,487,489],{"href":488},"\u002Fresearch\u002Fvibe-coded-app-security-2026","30.998 app vibe-coded dal vivo","\ncostruite con Lovable, Bolt, v0, Cursor, Replit, Windsurf e Base44, abbiamo\nrilasciato ogni aggregato sotto CC BY 4.0 perché chiunque lo riusi, e abbiamo\nannotato quanto spesso ogni controllo è scattato, quale quota di app non ha\nraggiunto e come quelle sono state contate. Un controllo senza risposta sta in\nuna colonna sua e non nel mucchio pulito, così niente su quella pagina è gonfiato\ncontando il silenzio come sicurezza. La home di LaunchGuard pubblica 96 app\ntestate e 2,37 milioni di record esposti. Nessuno degli altri otto siti che\nabbiamo letto pubblicava una cifra.",[38,492,494],{"id":493},"che-cosa-succede-il-giorno-in-cui-i-tuoi-dati-non-ci-sono-più","Che cosa succede il giorno in cui i tuoi dati non ci sono più?",[10,496,497],{},"Niente, su nove dei dieci. Uno scanner trova la porta aperta. Non può dirti chi\nci è già passato, e non può riportare indietro una tabella che qualcuno ha\nsvuotato martedì.",[10,499,500],{},"Reeve Care è il decimo, e chiudere quel divario è il motivo per cui questa\nazienda esiste. Prende copie del tuo database Supabase secondo un calendario,\napre ogni copia e la conta contro quello che è entrato prima che la copia valga\ncome backup, le tiene fuori dal tuo account Supabase così che un progetto sospeso\no un accesso che non recuperi le lasci dove sono, e sostituisce i tuoi dati da\nuna di esse quando lo chiedi. Prima di sostituire qualsiasi cosa viene presa una\ncopia dello stato attuale.",[10,502,503,504,508],{},"I tuoi file caricati viaggiano con le righe non appena colleghi una credenziale\nStorage, che è una seconda chiave chiesta a parte e l'unica che Reeve tenga in\ngrado di scrivere, perché Supabase non emette nessuna chiave in sola lettura per\ni file. ",[58,505,507],{"href":506},"\u002Fsupabase-backups","Che cosa fa esattamente"," è disegnato nella pagina dei\nbackup.",[10,510,511,514],{},[20,512,513],{},"Supabase è l'unica cosa che Care sappia copiare",", quindi se i tuoi dati stanno\nin Firebase o altrove questa intera sezione non ti è aperta e la metà che\nscansiona è quello che Reeve ha da offrirti. Vibe App Scanner e SafeToShip\ncontrollano entrambi le regole di sicurezza di Firebase, che è l'equivalente più\nvicino su questa pagina.",[38,516,518],{"id":517},"che-cosa-ottieni-per-un-abbonamento-mensile","Che cosa ottieni per un abbonamento mensile?",[10,520,521],{},"Su nove dei dieci, più scansioni. Su Reeve, le scansioni più quello che succede\ndopo che una di esse ha trovato qualcosa.",[523,524,525],"comparison-table",{},[91,526,527,542],{},[94,528,529],{},[97,530,531,533,536,539],{},[100,532],{},[100,534,535],{},"Un abbonamento di scansione",[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],{},"Riscansioni programmate",[121,550,551],{},"Sì, sui piani a pagamento",[121,553,554],{},"Ogni ora",[121,556,554],{},[97,558,559,562,565,568],{},[121,560,561],{},"Controlli di disponibilità",[121,563,564],{},"CheckVibe, ogni 60 secondi",[121,566,567],{},"Ogni 60 secondi",[121,569,567],{},[97,571,572,575,578,580],{},[121,573,574],{},"Avviso quando qualcosa cambia",[121,576,577],{},"Su alcuni",[121,579,135],{},[121,581,135],{},[97,583,584,587,590,592],{},[121,585,586],{},"Un rapporto mensile",[121,588,589],{},"Su nessuno che abbiamo letto",[121,591,135],{},[121,593,135],{},[97,595,596,599,602,605],{},[121,597,598],{},"App incluse",[121,600,601],{},"Varia",[121,603,604],{},"Tre",[121,606,607],{},"Una, cinque su Pro",[97,609,610,613,615,617],{},[121,611,612],{},"Una copia del tuo database",[121,614,169],{},[121,616,169],{},[121,618,619],{},"Giornaliera",[97,621,622,625,627,629],{},[121,623,624],{},"Riletta prima di contare",[121,626,169],{},[121,628,169],{},[121,630,135],{},[97,632,633,636,638,640],{},[121,634,635],{},"Punti di ripristino tenuti",[121,637,169],{},[121,639,169],{},[121,641,642],{},"30, 90 su Pro",[97,644,645,648,650,652],{},[121,646,647],{},"I tuoi file caricati",[121,649,169],{},[121,651,169],{},[121,653,654],{},"Con una chiave Storage",[97,656,657,660,662,664],{},[121,658,659],{},"Rimetterlo a posto è un pulsante",[121,661,169],{},[121,663,169],{},[121,665,135],{},[97,667,668,671,674,676],{},[121,669,670],{},"Che cosa sa copiare",[121,672,673],{},"Niente",[121,675,673],{},[121,677,678],{},"Solo Supabase",[97,680,681,684,687,690],{},[121,682,683],{},"Prova gratuita",[121,685,686],{},"7 o 14 giorni su alcuni",[121,688,689],{},"7 giorni",[121,691,689],{},[97,693,694,697,700,703],{},[121,695,696],{},"Prezzo quando abbiamo letto",[121,698,699],{},"Da $24 a $49 al mese",[121,701,702],{},"€12 al mese",[121,704,705],{},"€49 al mese",[10,707,708,709,713],{},"Quelle cifre degli altri sono quelle che mostravano il 7 settembre 2026 i cinque\nvenditori che ne pubblicano una: SafeToShip $24, Vibe App Scanner $29 o $49,\nVibeEval $49 con un piano team da $149, Defencecore $29 e SupaExplorer più in\nbasso a $6.75 dietro un banner di sconto. CheckVibe e LaunchGuard non pubblicano\nnessuna cifra. Leggi il prezzo attuale sulla pagina del venditore prima di\ncomprare qualsiasi cosa, e questo vale anche per ",[58,710,712],{"href":711},"\u002Fpricing","il nostro",", che a\nvolte sta sotto la cifra di listino qui e mai sopra.",[10,715,716],{},"I nostri prezzi sono in euro perché è in euro che ti fatturiamo. Le cifre degli\naltri sono in dollari perché è così che le danno le loro pagine, e noi non le\nconvertiamo.",[10,718,719],{},"Ogni piano a pagamento qui si può provare prima che ti addebiti qualcosa. Reeve\nti dà sette giorni, Defencecore sette, e VibeEval pubblicizza quattordici senza\ncarta. Gli altri non lo dicono sulle loro pagine prezzi.",[10,721,722,723,726,727,730],{},"Da quell'ultima riga escono due cose. ",[20,724,725],{},"Reeve Monitor costa €12 al mese"," per tre\napp, sotto ogni piano a pagamento qui tranne uno scontato, ed è tutta la metà di\nsorveglianza: riscansioni ogni ora, una sonda di disponibilità ogni 60 secondi,\navvisi quando qualcosa cambia e un rapporto mensile. E ",[20,728,729],{},"Reeve Care costa €49 al\nmese",", nella stessa fascia di prezzo di VibeEval Pro e Vibe App Scanner Pro,\npur essendo l'unico abbonamento della pagina che tiene anche una copia verificata\ndel tuo database e la rimette a posto su richiesta. Sopra, Care Pro a €79\naggiunge cinque app, backup due volte al giorno e una pagina di stato pubblica, e\nCare Max a €139 li prende quattro volte al giorno, a fronte del piano team di\nVibeEval da $149.",[38,732,734],{"id":733},"dove-reeve-non-è-la-risposta","Dove Reeve non è la risposta",[10,736,737],{},"Tre lavori di questa pagina che Reeve non fa affatto.",[739,740,741,747,753],"ul",{},[28,742,743,746],{},[20,744,745],{},"Leggere il tuo codice sorgente."," CheckVibe lo fa se colleghi GitHub, e gli\nscanner di segreti dedicati a quel lavoro vanno più a fondo di entrambi. È\nanche l'unico modo di trovare una chiave uscita dalla tua app mesi fa e ancora\nferma nella sua cronologia.",[28,748,749,752],{},[20,750,751],{},"Provare l'app da autenticato."," VibeEval guida un browser vero attraverso le\nschermate di accesso, Vibe App Scanner fa scansioni autenticate sul suo piano\npiù alto, e il piano a pagamento di LaunchGuard porta Claude Code attraverso\nscenari di autorizzazione. Reeve non fa mai login, non scrive mai e non scarica\nmai una riga, che è quello che rende sicuro puntarlo su un'app in produzione con\nclienti veri, e che è anche il motivo per cui un bug che si mostra solo a un\nutente autenticato ci resta invisibile.",[28,754,755,758],{},[20,756,757],{},"Essere aperto, o essere guidato dal tuo agente."," Supabomb è open source ed è\nscritto in Python. Vibe App Scanner pubblica un server MCP, CheckVibe porta i\nsuoi risultati dentro Claude o Cursor, e l'advisor di Supabase si raggiunge dal\nserver MCP di Supabase stesso. Reeve non pubblica né il suo sorgente né un\nserver MCP.",[10,760,761],{},"Dove Reeve è la risposta: la tua app è dal vivo, vuoi sapere che cosa consegna\nagli estranei proprio adesso senza collegare nessun account a niente, vuoi un\nrapporto che ti dica quello che hai fatto bene con la stessa chiarezza di quello\nche è aperto, e ti farebbe piacere che qualcuno tenesse una copia verificata del\ntuo database il giorno in cui va storto.",[38,763,765],{"id":764},"che-cosa-stai-consegnando-quando-uno-strumento-legge-il-tuo-codice","Che cosa stai consegnando quando uno strumento legge il tuo codice?",[10,767,768],{},"Accesso permanente a tutto quello che sta nel repository, che è una cosa molto\npiù grande dell'app.",[10,770,771,772,775,776,779,780,783],{},"Il tuo repository non è la tua app. Contiene ogni chiave che hai committato e poi\ntolto, i file di seed e di fixture con dati di clienti dall'aria vera, il branch\na metà che nessuno ha messo in produzione, e le istruzioni che hai scritto per il\ntuo builder di IA. Quest'ultima cosa sorprende. Il tuo ",[412,773,774],{},"CLAUDE.md",", i tuoi\n",[412,777,778],{},".cursorrules",", il tuo ",[412,781,782],{},"AGENTS.md",", il prompt lungo che descrive come si suppone\nche il prodotto si comporti: quello è il tuo pensiero di prodotto, in chiaro,\ndentro il repository. Una scansione di URL vede l'app che vedono i tuoi\nvisitatori. Un collegamento al repository vede tutto quanto, e adesso una seconda\nazienda ne tiene una copia.",[10,785,786],{},"Tre cose da verificare prima di concederne uno:",[739,788,789,795,801],{},[28,790,791,794],{},[20,792,793],{},"È accesso permanente e non una visita."," Una GitHub App o un'autorizzazione\nOAuth continua a funzionare finché non vai a revocarla, quindi legge anche\nquello che pubblicherai il mese prossimo. Scopri se puoi limitarla a un solo\nrepository, e trova il pulsante di revoca prima di averne bisogno.",[28,796,797,800],{},[20,798,799],{},"La loro violazione diventa la tua."," Tutto quello che un fornitore tiene su\ndi te è esposto quando il fornitore lo è. Defencecore fa esattamente questo\nragionamento a proprio favore sulla sua pagina, ed è un buon ragionamento: uno\nstrumento che si limita a leggere può \"never become the incident\".",[28,802,803,806],{},[20,804,805],{},"Uno strumento che fa login può cambiare le cose."," Uno scanner che guida un\nbrowser attraverso il tuo login fa quello che fa un utente, sui tuoi dati veri.\nLeggi che cosa dice che cliccherà e che cosa no.",[10,808,809],{},"Questo è uno scambio e non un avvertimento. Uno scanner di repository trova la\nchiave che hai cancellato ad aprile e nulla che legga il tuo sito dal vivo lo\nfarà mai, quindi se quella è la tua domanda, l'accesso è quanto costa la risposta.",[38,811,813],{"id":812},"quale-dovresti-scegliere","Quale dovresti scegliere?",[10,815,816],{},"Cinque situazioni, e due non finiscono da noi.",[739,818,819,829,835,841,847],{},[28,820,821,824,828],{},[20,822,823],{},"Vuoi sapere adesso e gratis che cosa mostra la tua app a un estraneo.",[58,825,827],{"href":826},"\u002Fsecurity-scanner","La scansione di Reeve"," o LaunchGuard. Nessuno dei due\nchiede di registrarsi, ed entrambi tornano in meno di un minuto. Anche\nSafeToShip e SupaExplorer scansionano senza account.",[28,830,831,834],{},[20,832,833],{},"Sei su Supabase e non hai mai aperto il Security Advisor."," Quello per primo,\nprima di qualsiasi cosa con un prezzo su questa pagina. È gratuito e legge\nquello che nessuna scansione da fuori può leggere.",[28,836,837,840],{},[20,838,839],{},"Vuoi che ti leggano il codice sorgente, o che provino l'app da\nautenticato."," CheckVibe per il repository, VibeEval o il piano più alto di\nVibe App Scanner per quello che sta dietro il login. Leggi la sezione qui sopra\nsu quanto costa quell'accesso prima di concederlo.",[28,842,843,846],{},[20,844,845],{},"Vuoi l'app sorvegliata e stai contando ogni euro."," Reeve Monitor, €12 al\nmese per tre app: riscansioni ogni ora, una sonda di disponibilità ogni 60\nsecondi, avvisi e un rapporto mensile, e nessun backup.",[28,848,849,852],{},[20,850,851],{},"Hai clienti veri e nessuno che eseguirà un ripristino sotto pressione.","\nReeve Care, €49 al mese, cioè la scansione e la sorveglianza e una copia\nverificata del tuo database che torna con un pulsante. Se i tuoi dati non sono\nin Supabase, la metà dei backup non ti riguarda.",[38,854,856],{"id":855},"che-cosa-fare-questa-settimana","Che cosa fare questa settimana",[858,859,860],"key-takeaways",{},[739,861,862,865,868,871,874,877],{},[28,863,864],{},"Apri il tuo Supabase Security Advisor prima di pagare chiunque. È gratuito, è già nella tua dashboard, e legge cose che nessuna scansione da fuori raggiunge.",[28,866,867],{},"Passa due scanner di URL gratuiti sulla stessa app e metti i rapporti uno accanto all'altro. Dove non concordano è dove uno dei due sta tirando a indovinare.",[28,869,870],{},"Guarda che cosa dice ciascuno della chiave pubblicabile nel tuo bundle. Uno strumento che la segna come critica segnerà tutto come critico, e imparerai a ignorare tutto.",[28,872,873],{},"Leggi le righe che dicono che un controllo non è potuto girare prima di quelle che dicono che uno è passato. Un rapporto senza nessuna riga così non ti sta dicendo che non ce n'erano.",[28,875,876],{},"Prima di collegare un repository o un account Supabase a qualcosa, verifica che cosa copre l'autorizzazione, se si può limitare a un solo progetto, e dove sta il pulsante di revoca.",[28,878,879],{},"Decidi a parte chi tiene una copia del tuo database. Nove dei dieci strumenti qui sopra si fermano a dirtelo, e gli abbonamenti alti di solo scan costano quanto l'unico che non si ferma.",[10,881,882,885,886,889,890,894],{},[58,883,884],{"href":826},"La scansione di sicurezza gratuita di Reeve"," legge un URL dal\nvivo in una ventina di secondi senza account, dà un voto a quello che ha trovato,\ned elenca quello che hai fatto bene accanto a quello che è aperto. Far\nsorvegliare un'app dopo parte da €12 al mese, e i backup con ripristino a un\npulsante da €49; ",[58,887,888],{"href":711},"i piani sono qui",". Se preferisci prima passare in\nrassegna la tua app da solo,\n",[58,891,893],{"href":892},"\u002Fchecklist","la checklist di sicurezza in 10 minuti"," copre lo stesso terreno\nsenza uno strumento di mezzo.",{"title":896,"searchDepth":897,"depth":897,"links":898},"",3,[899,901,902,903,904,905,906,907,908,909,910],{"id":40,"depth":900,"text":41},2,{"id":85,"depth":900,"text":86},{"id":284,"depth":900,"text":285},{"id":425,"depth":900,"text":426},{"id":473,"depth":900,"text":33},{"id":493,"depth":900,"text":494},{"id":517,"depth":900,"text":518},{"id":733,"depth":900,"text":734},{"id":764,"depth":900,"text":765},{"id":812,"depth":900,"text":813},{"id":855,"depth":900,"text":856},"Basi della sicurezza","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcover-1200x630.png","Una lente a sinistra manda archi di sonar su un campo sparso di finestre di applicazione, ogni arco più tenue del precedente.","Il miglior scanner di sicurezza per vibe coding dipende da tre domande che nessun elenco di funzioni affronta. Dieci strumenti a confronto, con i prezzi.",false,"md",[918,921,924,927,930,933],{"q":919,"a":920},"Quale scanner di sicurezza per vibe coding è gratuito?","Diversi scansionano senza pagamento, e intendono cose diverse. Supabase Security Advisor è gratuito del tutto e vive nella dashboard in cui entri già. Cinque scansionano senza alcun account: Reeve, LaunchGuard, SupaExplorer, SafeToShip, la cui pagina prezzi dice \"no account needed\", e Supabomb, perché lo esegui sulla tua macchina. Di questi cinque, LaunchGuard, SupaExplorer e Supabomb mostrano anche il rapporto intero gratis, mentre Reeve mostra il voto, il punteggio e i conteggi in una ventina di secondi e chiede una e-mail prima dei risultati dettagliati, e SafeToShip chiede $9 per quelli. CheckVibe ti manda a una pagina di registrazione, e VibeEval e Defencecore mettono il rapporto dietro una prova.",{"q":922,"a":923},"Quanto costa uno scanner di sicurezza per vibe coding?","Tra $24 e $49 al mese sui cinque che pubblicavano una cifra quando li abbiamo letti il 7 settembre 2026: SafeToShip $24, Vibe App Scanner $29 o $49, VibeEval $49 con un piano team da $149, Defencecore $29 e SupaExplorer più in basso a $6.75 dietro un banner di sconto. Reeve Monitor costa €12 al mese per riscansioni ogni ora, controlli di disponibilità ogni 60 secondi, avvisi e un rapporto mensile su tre app, e resta sotto ogni piano a pagamento qui sopra tranne quello scontato. Reeve Care costa €49, nella stessa fascia di prezzo dei piani alti di solo scan, e aggiunge copie giornaliere del tuo database Supabase rilette prima di contare, con ripristino a un pulsante. Controlla ogni cifra sulla pagina del venditore prima di comprare, la nostra compresa.",{"q":925,"a":926},"Qualcuno di questi ha bisogno della password del mio database?","Nessuno degli scanner di URL, Reeve compreso. Leggono la tua app da fuori, quindi non c’è nulla da collegare. Defencecore ti chiede di autorizzare un accesso in sola lettura ai log di un progetto Supabase, che è un permesso di account e non la tua password. Supabase Security Advisor ha bisogno del tuo accesso Supabase perché fa parte di Supabase. Supabomb è uno strumento a riga di comando che esegui tu, quindi quello che gli dai dipende da te.",{"q":928,"a":929},"Quali rilevano i problemi di RLS su Supabase?","Quasi tutti in questo elenco lo dichiarano, e trovano cose diverse. Uno scanner di URL come Reeve chiede al tuo progetto se una richiesta anonima riceve righe, cioè la conseguenza, e legge il conteggio da un header di risposta senza portarsi via una sola riga. Supabase Security Advisor legge la configurazione e segnala le tabelle con la Row Level Security spenta o rimaste senza policy, cioè la causa. Le due cose divergono più spesso di quanto ci si aspetti, quindi un advisor pulito e uno scanner che trova righe in quella stessa tabella non si contraddicono.",{"q":931,"a":932},"Perché uno strumento dice 40 problemi e un altro 2?","Perché contano con righelli diversi. Gli strumenti pubblicizzano da nove controlli a oltre cento, e un elenco più lungo produce un rapporto più lungo sulla stessa app. La causa maggiore è che alcuni scanner trattano come problema ogni chiave che trovano nel tuo JavaScript, comprese quelle pubblicabili, che lì ci devono stare. Reeve decodifica la chiave e legge il ruolo scritto dentro, così una chiave pubblicabile torna come qualcosa che hai fatto bene e non come un risultato. Guarda che cosa dice uno strumento della tua chiave pubblicabile Supabase prima di credere al suo totale.",{"q":934,"a":935},"Questo confronto è di parte?","Sì. Reeve è uno dei dieci strumenti in tabella e lo facciamo noi, quindi leggi la pagina sapendolo. Che cosa abbiamo fatto al riguardo: nominare i tre lavori di questa pagina che Reeve non fa affatto, mandarti allo strumento gratuito della tua dashboard Supabase prima di qualsiasi cosa a pagamento, stampare i prezzi degli altri accanto al nostro, e pubblicare tutto il set di dati dietro i nostri controlli sotto licenza aperta perché le affermazioni siano verificabili. Ogni riga è stata letta sulla pagina del venditore il 7 settembre 2026 e nessuna è collegata, quindi qui non c’è nulla di sponsorizzato.","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",[938,939,940,941,942,943,944,945],"miglior scanner di sicurezza vibe coding","confronto scanner di sicurezza vibe coding","alternativa a checkvibe","alternativa a vibe app scanner","alternativa a launchguard","confronto scanner di sicurezza supabase","scanner di sicurezza gratis o a pagamento","AI app security tools 2026",{},true,"Scanner di sicurezza per vibe coding a confronto","\u002Fblog\u002Fvibe-coding-security-scanners-compared","2026-09-07",{"title":5,"description":914},"blog\u002Fvibe-coding-security-scanners-compared",[954,955,956],"Non esiste un solo miglior scanner di sicurezza per vibe coding, perché quasi tutti leggono la stessa superficie e si distinguono per che cosa ne fanno. Sette dei dieci qui girano con nient'altro che un URL.","Tre domande li separano: se uno strumento distingue una chiave che appartiene alla tua app da una che non le appartiene, se lo dice quando un controllo non ha ricevuto risposta, e se dopo qualcosa rimette a posto i tuoi dati.","Reeve risponde sì a tutte e tre, a €12 al mese per sorvegliare un’app e €49 per copiarla, nella stessa fascia di prezzo degli abbonamenti di solo scan che qui non fanno nessuna delle due cose. Lo facciamo noi, quindi i tre lavori che Reeve non fa affatto sono elencati verso la fine.","I90mv-fQYiqXnoFra0auxzzK6pFtuZ8G_yitOjSwi4w",[959,966,972,978,984,990,996,1002,1008,1014,1020,1026,1032,1038,1044,1050,1056,1057,1063,1068,1074,1080,1086,1092,1098,1104,1110,1116,1122,1128,1134,1140,1146,1152,1158,1164,1169,1175,1181,1186,1191,1197],{"path":960,"title":961,"description":962,"published":963,"category":964,"image":965,"draft":915},"\u002Fblog\u002Fsupabase-backup-auth-users","Perché nel tuo dump Supabase non ci sono utenti","Lancia supabase db dump da solo e ottieni la forma del tuo database e nessuna delle sue righe, senza lo schema auth in cui vivono i tuoi utenti.","2026-09-23","Backups","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":967,"title":968,"description":969,"published":970,"category":911,"image":971,"draft":915},"\u002Fblog\u002Fdomain-and-certificate-expiry","Dominio scaduto, sito offline: cosa succede adesso","Il tuo dominio è scaduto e il sito è offline. Il conto alla rovescia che parte, perché il certificato è il problema minore, e come controllarli entrambi.","2026-09-22","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":973,"title":974,"description":975,"published":976,"category":911,"image":977,"draft":915},"\u002Fblog\u002Fis-lovable-safe","Lovable è sicuro? Cosa abbiamo trovato in 18.554 app Lovable","Lovable è sicuro? Abbiamo passato 18.554 app Lovable online per nove controlli. La piattaforma è risultata la più pulita di cinque. I rilievi stavano nelle app.","2026-09-21","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":979,"title":980,"description":981,"published":982,"category":911,"image":983,"draft":915},"\u002Fblog\u002Fvibe-coded-app-security-checklist","La checklist di sicurezza del vibe coding, in nove controlli","Una checklist di sicurezza del vibe coding in nove voci, ognuna verificabile dall’esterno sulla tua app dal vivo, e ognuna con un test di una riga.","2026-09-20","\u002Fblog\u002Fvibe-coded-app-security-checklist\u002Fcard-800x500.png",{"path":985,"title":986,"description":987,"published":988,"category":911,"image":989,"draft":915},"\u002Fblog\u002Fstripe-secret-key-in-frontend","Una chiave segreta Stripe nel frontend può muovere denaro","Una chiave segreta Stripe esposta nel tuo frontend può rimborsare, addebitare e leggere ogni scheda cliente che hai. La tua chiave pk_live_ ci sta bene.","2026-09-19","\u002Fblog\u002Fstripe-secret-key-in-frontend\u002Fcard-800x500.png",{"path":991,"title":992,"description":993,"published":994,"category":911,"image":995,"draft":915},"\u002Fblog\u002Fvite-and-next-public-env-vars","Variabili d’ambiente Vite esposte: il prefisso vuol dire pubblica","Variabili d’ambiente Vite esposte: la tua app ha fatto ciò che il prefisso chiedeva. VITE_ e NEXT_PUBLIC_ vogliono dire pubblica, e l’IA non sapeva il costo.","2026-09-18","\u002Fblog\u002Fvite-and-next-public-env-vars\u002Fcard-800x500.png",{"path":997,"title":998,"description":999,"published":1000,"category":911,"image":1001,"draft":915},"\u002Fblog\u002Fbase44-source-maps","Sicurezza Base44: cosa segnala uno scan e cosa tocca a te sistemare","Sicurezza Base44 su 5.438 app scansionate: tre segnalazioni su quasi tutte sono della piattaforma, la source map è il badge di Base44, la tua parte è corta.","2026-09-17","\u002Fblog\u002Fbase44-source-maps\u002Fcard-800x500.png",{"path":1003,"title":1004,"description":1005,"published":1006,"category":911,"image":1007,"draft":915},"\u002Fblog\u002Fis-cursor-ai-safe","Cursor AI è sicuro? L’editor, il codice e l’app che hai pubblicato","Cursor AI è sicuro? Tre domande in una ricerca: cosa tiene Cursor, cosa sbaglia il codice che scrive, e se l’app che hai pubblicato è aperta.","2026-09-16","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",{"path":1009,"title":1010,"description":1011,"published":1012,"category":911,"image":1013,"draft":915},"\u002Fblog\u002Fis-replit-safe","Replit è sicuro? Cosa abbiamo trovato in 3.042 app Replit online","Replit è sicuro? Abbiamo passato 3.042 app Replit online per nove controlli esterni. I rilievi stavano nell’app pubblicata, non nell’host.","2026-09-15","\u002Fblog\u002Fis-replit-safe\u002Fcard-800x500.png",{"path":1015,"title":1016,"description":1017,"published":1018,"category":964,"image":1019,"draft":915},"\u002Fblog\u002Fsupabase-storage-backup","Supabase storage backup: la copia del database non ha nessun file","Un Supabase storage backup è un lavoro a parte. I backup del database tengono la lista dei tuoi file e nessuno dei file, quindi ogni upload resta rotto.","2026-09-14","\u002Fblog\u002Fsupabase-storage-backup\u002Fcard-800x500.png",{"path":1021,"title":1022,"description":1023,"published":1024,"category":964,"image":1025,"draft":915},"\u002Fblog\u002Fsupabase-point-in-time-recovery","Point-in-time recovery di Supabase: prezzo e limiti","Il point-in-time recovery di Supabase riavvolge il database a qualsiasi secondo della settimana scorsa. $100 al mese oltre a Pro, e copre solo il database.","2026-09-13","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcard-800x500.png",{"path":1027,"title":1028,"description":1029,"published":1030,"category":964,"image":1031,"draft":915},"\u002Fblog\u002Fsupabase-project-paused-recover","Progetto Supabase in pausa? I tuoi dati sono ancora lì","Supabase ha messo in pausa il tuo progetto dopo una settimana senza attività. Non è cancellato niente, Ripristina è accanto al nome e hai un anno di tempo.","2026-09-12","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",{"path":1033,"title":1034,"description":1035,"published":1036,"category":911,"image":1037,"draft":915},"\u002Fblog\u002Fsafest-ai-app-builder","Qual è il builder di app con IA più sicuro? 30.998 app testate","Qual è il builder di app con IA più sicuro? Abbiamo scansionato 30.998 app online di Lovable, Base44, Replit, v0 e Bolt. Non è il builder a decidere il voto.","2026-09-11","\u002Fblog\u002Fsafest-ai-app-builder\u002Fcard-800x500.png",{"path":1039,"title":1040,"description":1041,"published":1042,"category":911,"image":1043,"draft":915},"\u002Fblog\u002Fenable-rls-on-every-supabase-table","Attiva Row Level Security su ogni tabella Supabase, poi verificalo","Attivare Row Level Security su Supabase senza una policy chiude del tutto la tabella. Una policy senza il flag non fa nulla. Ecco lo SQL, e la verifica.","2026-09-10","\u002Fblog\u002Fenable-rls-on-every-supabase-table\u002Fcard-800x500.png",{"path":1045,"title":1046,"description":1047,"published":1048,"category":911,"image":1049,"draft":915},"\u002Fblog\u002Fsupabase-rls-disabled-in-public","Supabase \"RLS disabled in public\": cosa non vede l'avviso","Supabase segnala \"RLS disabled in public\" come errore. Non dice nulla della policy di lettura che lascia la tua tabella altrettanto aperta.","2026-09-09","\u002Fblog\u002Fsupabase-rls-disabled-in-public\u002Fcard-800x500.png",{"path":1051,"title":1052,"description":1053,"published":1054,"category":911,"image":1055,"draft":915},"\u002Fblog\u002Frotate-supabase-service-role-key","Come ruotare una chiave service_role Supabase trapelata","Supabase dice di chiudere prima la falla. Altre guide dicono di ruotare subito. Quale sia giusto dipende da dove è finita la tua chiave service_role.","2026-09-08","\u002Fblog\u002Frotate-supabase-service-role-key\u002Fcard-800x500.png",{"path":949,"title":5,"description":914,"published":950,"category":911,"image":936,"draft":915},{"path":1058,"title":1059,"description":1060,"published":1061,"category":911,"image":1062,"draft":915},"\u002Fblog\u002Fsupabase-security-checker","Supabase security checker: i cinque controlli da fare da soli","Un Supabase security checker legge la tua app pubblicata invece delle impostazioni del progetto. Ecco i cinque controlli che esegue e come farli da solo.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":60,"title":1064,"description":1065,"published":1066,"category":911,"image":1067,"draft":915},"Scanner di sicurezza per vibe coding: cosa si perde","Uno scanner di sicurezza per vibe coding legge la tua app dal vivo, da fuori. Cosa copre, le quattro cose che non può vedere e come leggere il risultato.","2026-09-05","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":1069,"title":1070,"description":1071,"published":1072,"category":911,"image":1073,"draft":915},"\u002Fblog\u002Fmissing-security-headers","Intestazioni di sicurezza mancanti: quando contano","Le intestazioni di sicurezza mancanti sono il rilievo che il nostro scanner stampa più spesso. Da cosa proteggono e quando sono la riga meno urgente.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":1075,"title":1076,"description":1077,"published":1078,"category":911,"image":1079,"draft":915},"\u002Fblog\u002Fopenai-api-key-exposed-in-frontend","La tua chiave API OpenAI è esposta nel frontend. Ruotala.","Una chiave API OpenAI esposta nel frontend non si può legare a nessun dominio. Ruotala oggi, sposta la chiamata sul tuo server e metti un tetto di spesa.","2026-09-03","\u002Fblog\u002Fopenai-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":1081,"title":1082,"description":1083,"published":1084,"category":911,"image":1085,"draft":915},"\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps","Chiave API esposta nel frontend: cosa spediscono 30.998 app","Una chiave API esposta nel tuo frontend è quasi sempre una chiave di Google Maps. Abbiamo scansionato 30.998 app vibe-coded e contato cosa esce davvero.","2026-09-02","\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps\u002Fcard-800x500.png",{"path":1087,"title":1088,"description":1089,"published":1090,"category":964,"image":1091,"draft":915},"\u002Fblog\u002Fsupabase-backup-tools-compared","Strumenti di backup Supabase a confronto, il nostro incluso","Quattro tipi di strumento di backup Supabase, cosa copia davvero ognuno, e il caso in cui una GitHub Action gratuita batte il pagare chiunque, noi inclusi.","2026-09-01","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",{"path":1093,"title":1094,"description":1095,"published":1096,"category":911,"image":1097,"draft":915},"\u002Fblog\u002Freplit-secrets-explained","Come usare i secret su Replit, e cosa viene comunque pubblicato","Come usare i secret su Replit: aggiungerne uno, rileggerlo e risolvere le due cause dell'undefined. E le chiavi che lo strumento non riesce a proteggere.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":1099,"title":1100,"description":1101,"published":1102,"category":964,"image":1103,"draft":915},"\u002Fblog\u002Fback-up-supabase-free-tier","Backup del piano gratuito Supabase: farne uno senza terminale","Sul piano gratuito Supabase non esistono backup: la copia la fai tu. Come farne uno dalla dashboard e che cosa si lascia dietro la via del CSV.","2026-08-30","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",{"path":1105,"title":1106,"description":1107,"published":1108,"category":911,"image":1109,"draft":915},"\u002Fblog\u002Fis-supabase-secure","Supabase è sicuro? Sì. Il tuo progetto è un'altra questione","Supabase è sicuro? La piattaforma è certificata, cifrata e sottoposta a pentest. La loro documentazione dice dove finisce quello e iniziano le tue impostazioni.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":1111,"title":1112,"description":1113,"published":1114,"category":911,"image":1115,"draft":915},"\u002Fblog\u002Fwhere-to-find-supabase-api-keys","Dove trovare le chiavi API di Supabase: anon, service_role e URL","L'URL del progetto, la chiave anon e la chiave service_role stanno su una pagina della dashboard. Ecco dove si trova e quale dei quattro va nella tua app.","2026-08-28","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fcard-800x500.png",{"path":1117,"title":1118,"description":1119,"published":1120,"category":911,"image":1121,"draft":915},"\u002Fblog\u002Fnew-row-violates-row-level-security-policy","New row violates row-level security policy su Supabase. E adesso?","\"New row violates row-level security policy\" significa che Supabase ha rifiutato una scrittura. La soluzione veloce riapre la tabella a chiunque.","2026-08-27","\u002Fblog\u002Fnew-row-violates-row-level-security-policy\u002Fcard-800x500.png",{"path":1123,"title":1124,"description":1125,"published":1126,"category":911,"image":1127,"draft":915},"\u002Fblog\u002Fcors-wildcard-security-risk","Un wildcard CORS è un rischio di sicurezza? Quasi mai.","Un wildcard CORS è un rischio di sicurezza? Di solito è il valore predefinito del tuo builder e non consegna nulla che il tuo server non desse già a chiunque.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":1129,"title":1130,"description":1131,"published":1132,"category":964,"image":1133,"draft":915},"\u002Fblog\u002Fsupabase-branching-is-not-a-backup","Il branching di Supabase non è un backup. Va solo in avanti.","Perché il branching di Supabase non è un backup: un branch parte senza i tuoi dati e un merge sposta solo lo schema. A cosa serve davvero e cosa usare invece.","2026-08-25","\u002Fblog\u002Fsupabase-branching-is-not-a-backup\u002Fcard-800x500.png",{"path":1135,"title":1136,"description":1137,"published":1138,"category":964,"image":1139,"draft":915},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","Come ripristinare un backup Supabase, e cosa si rompe dopo","Come ripristinare un backup Supabase dalla dashboard o da un file di dump, che cosa sostituisce il ripristino e perché la tua app può restare rotta lo stesso.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":1141,"title":1142,"description":1143,"published":1144,"category":911,"image":1145,"draft":915},"\u002Fblog\u002Fsupabase-storage-bucket-public","Il tuo bucket Supabase Storage è pubblico. È un problema?","Un bucket Supabase Storage pubblico significa che chi ha l'URL di un file può aprirlo. Non significa che qualcuno possa elencare quello che c'è dentro.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":1147,"title":1148,"description":1149,"published":1150,"category":911,"image":1151,"draft":915},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","Una chiave API Google nel frontend è un problema?","Una chiave API Google esposta nel frontend è la chiave che il nostro scanner trova più spesso, e di solito va bene così. Lo decide una impostazione gratuita.","2026-08-22","\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":1153,"title":1154,"description":1155,"published":1156,"category":964,"image":1157,"draft":915},"\u002Fblog\u002Fai-agent-deleted-my-database","Un agente IA ha cancellato i miei dati Supabase. Cosa recupero?","Un agente IA ha cancellato dati dal tuo database. Quello che puoi recuperare era già deciso prima che partisse, e i prossimi minuti decidono il resto.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":1159,"title":1160,"description":1161,"published":1162,"category":911,"image":1163,"draft":915},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","Chiunque può leggere il tuo database Supabase? 3.680 app testate","Chiunque può leggere il tuo database Supabase senza fare login? Abbiamo scansionato 30.998 app online create con i builder IA e misurato quante rispondono sì.","2026-08-18","\u002Fblog\u002Fcan-anyone-read-your-supabase-database\u002Fcard-800x500.png",{"path":1165,"title":1166,"description":1167,"published":1162,"category":911,"image":1168,"draft":915},"\u002Fblog\u002Fsource-maps-exposed-in-production","Source map esposte: la tua app sta pubblicando il codice originale","Una source map esposta permette a chiunque di leggere il codice originale della tua app, commenti inclusi. Il controllo da 30 secondi e cosa conta davvero.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":1170,"title":1171,"description":1172,"published":1173,"category":911,"image":1174,"draft":915},"\u002Fblog\u002Fsupabase-new-api-keys","Le nuove chiavi API di Supabase: quale va nella tua app?","Supabase ha sostituito anon e service_role con chiavi pubblicabili e segrete. Quale sta bene nella tua app, e quale non deve starci mai?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":1176,"title":1177,"description":1178,"published":1179,"category":964,"image":1180,"draft":915},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","Supabase fa il backup del mio database? Dipende dal tuo piano.","Supabase fa il backup del tuo database? Ogni giorno sui piani a pagamento, mai su quello gratuito. Come capire cosa hai e cosa quella copia non copre.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":74,"title":1182,"description":1183,"published":1184,"category":911,"image":1185,"draft":915},"Supabase Row Level Security è attivo. La tabella resta pubblica.","Attivare Supabase Row Level Security non protegge una tabella. Lo fanno le policy, e quella che ha rimesso in piedi la tua app può far entrare chiunque.","2026-08-10","\u002Fblog\u002Fsupabase-rls-on-but-table-still-public\u002Fcard-800x500.png",{"path":1187,"title":1188,"description":1189,"published":1184,"category":964,"image":1190,"draft":915},"\u002Fblog\u002Fversion-history-is-not-a-backup","La cronologia delle versioni non è un backup dei tuoi dati.","Lovable e Bolt tengono una cronologia delle versioni del codice. Il tuo database è un servizio a parte, e tornare indietro non ti restituisce i dati.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":1192,"title":1193,"description":1194,"published":1195,"category":964,"image":1196,"draft":915},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Tre modi per fare il backup di un database Supabase, e cosa manca","Il pannello, pg_dump e un servizio gestito. Che cosa salva davvero ciascuno, cosa lascia fuori senza dirlo e quale sopravvive alla perdita dell'account.","2026-08-09","\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database\u002Fcard-800x500.png",{"path":441,"title":1198,"description":1199,"published":1195,"category":911,"image":1200,"draft":915},"Quali chiavi API sono sicure nel browser e quali no","La tua chiave anon di Supabase è fatta per essere pubblica. La chiave service_role no, e ignora ogni regola che imposti. Come distinguerle.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1790150956071]