[{"data":1,"prerenderedAt":818},["ShallowReactive",2],{"blog-it-base44-security-scan":3,"blog-index-it":463},{"id":4,"title":5,"body":6,"category":420,"cover":421,"coverAlt":422,"description":423,"draft":424,"extension":425,"faq":426,"image":442,"keywords":443,"meta":451,"navigation":452,"ogTitle":453,"path":454,"published":455,"seo":456,"stem":457,"tldr":458,"updated":455,"__hash__":462},"blog_it\u002Fblog\u002Fbase44-security-scan.md","Scansione di sicurezza Base44: ciò che vede solo lei",{"type":7,"value":8,"toc":408},"minimark",[9,13,21,24,29,32,127,139,161,165,168,171,178,184,193,197,200,226,233,238,241,249,257,261,264,267,272,275,279,282,296,302,313,317,320,329,347,357,374,377,381,401],[10,11,12],"p",{},"Apri la Dashboard della tua app Base44, clicchi su Security, premi Run Security\nScan e qualche secondo dopo torna un elenco. Oppure non torna niente. In\nentrambi i casi hai in mano un risultato e ti chiedi se quello fosse tutto il\ncontrollo.",[10,14,15,16,20],{},"Quasi tutti i testi su questo lo raccontano al contrario. L’argomento solito\ndice che una scansione lanciata dall’interno del tuo progetto non può vedere\nquello che vede internet, quindi quella esterna è quella di cui fidarsi. Su\nBase44 è il rovescio per la metà che conta: ",[17,18,19],"strong",{},"la scansione di sicurezza Base44\nè l’unica cosa capace di controllare se uno sconosciuto può leggere i tuoi dati,\ne possiamo dimostrarti che noi non ci riusciamo."," Ci abbiamo provato su 1.466\napp Base44 e abbiamo ottenuto una risposta da due.",[10,22,23],{},"Quindi questa è una divisione del lavoro. Una scansione lavora dentro\nl’edificio. L’altra sta sul marciapiede e legge quello che viene consegnato\ndavanti. Entrambe valgono la pena, e su Base44 quella interna fa la metà più\npesante.",[25,26,28],"h2",{"id":27},"che-cosa-controlla-la-scansione-di-sicurezza-base44","Che cosa controlla la scansione di sicurezza Base44?",[10,30,31],{},"Sette tipi di problema, letti dall’interno del tuo progetto. Il tuo indirizzo\npubblicato non lo va mai a prendere.",[33,34,35,51],"table",{},[36,37,38],"thead",{},[39,40,41,45,48],"tr",{},[42,43,44],"th",{},"Che cosa controlla",[42,46,47],{},"Che cosa vuol dire",[42,49,50],{},"Piani",[52,53,54,66,76,86,96,106,117],"tbody",{},[39,55,56,60,63],{},[57,58,59],"td",{},"Data permission issues",[57,61,62],{},"Una tabella di dati senza regole di accesso, o persone con più accesso di quanto dovrebbero",[57,64,65],{},"Tutti",[39,67,68,71,74],{},[57,69,70],{},"Exposed secrets",[57,72,73],{},"Chiavi API, password o token lasciati in un punto che i visitatori dell’app possono raggiungere",[57,75,65],{},[39,77,78,81,84],{},[57,79,80],{},"Unauthenticated backend functions",[57,82,83],{},"Qualcosa dietro le quinte che consegna dati senza controllare chi chiede. Intitolato \"Anyone can run this function\"",[57,85,65],{},[39,87,88,91,94],{},[57,89,90],{},"Credit protection",[57,92,93],{},"Le tue funzioni di IA, immagine o email raggiungibili da fuori la tua app, così un altro spende i tuoi crediti",[57,95,65],{},[39,97,98,101,104],{},[57,99,100],{},"App dependencies",[57,102,103],{},"Una libreria di terze parti con una falla nota, e la versione a cui passare",[57,105,65],{},[39,107,108,111,114],{},[57,109,110],{},"Code vulnerabilities",[57,112,113],{},"Schemi nel tuo codice: controlli di accesso mancanti, gestione imprudente di quello che qualcuno ha scritto",[57,115,116],{},"Da Builder in su",[39,118,119,122,125],{},[57,120,121],{},"Security header recommendations",[57,123,124],{},"Due protezioni del browser, l’incorporamento in iframe e le funzioni del browser che non usi",[57,126,65],{},[10,128,129,130,134,135,138],{},"Tutto questo è stato letto il 10 ottobre 2026 nella documentazione di Base44,\nnelle pagine ",[131,132,133],"code",{},"Running a security scan"," e ",[131,136,137],{},"Base44 security: An overview",". Tre\ncose lì dentro vale la pena conoscerle prima di fidarti del risultato:",[140,141,142,149,155],"ul",{},[143,144,145,148],"li",{},[17,146,147],{},"La scansione non applica mai una correzione da sola."," Premi Fix e Base44\nscrive la modifica nella chat IA della tua app mettendo prima un checkpoint,\ncosì una correzione che rompe qualcosa può essere annullata dalla chat.",[143,150,151,154],{},[17,152,153],{},"Il pulsante Fix with AI su una funzione non autenticata rifiuta qualsiasi\nchiamante senza un utente collegato."," Base44 scrive nella stessa riga che\nquesto può rompere una pagina pensata per i visitatori non collegati, un\nwebhook o un’integrazione che chiama quella funzione. Prova quei percorsi\ndopo.",[143,156,157,160],{},[17,158,159],{},"Avvisa alla pubblicazione e non ti ferma."," Il pannello di pubblicazione\nmostra uno stato Security, e Base44 lo descrive come un avviso che non ti\nimpedisce di pubblicare.",[25,162,164],{"id":163},"ciò-che-vede-solo-lei","Ciò che vede solo lei",[10,166,167],{},"Se le persone che usano la tua app possono raggiungere dati che non sono loro.\nSu un’app Base44 niente al di fuori della piattaforma può controllarlo.",[10,169,170],{},"Sulla maggior parte dei builder la tua app parla con il suo database\ndirettamente dal browser del tuo visitatore. Così il database ha un indirizzo\npubblico, la tua pagina se lo porta dietro e chiunque può tirarlo fuori e\niniziare a fare domande. Che ottenga risposte dipende da un’impostazione tabella\nper tabella che la maggior parte dei proprietari non ha mai aperto. Un’app\nBase44 manda le sue richieste attraverso Base44, quindi non c’è alcun indirizzo\nper strada da provare.",[10,172,173,174,177],{},"La misura è abbastanza sbilanciata da chiudere la questione. 1.466 delle 5.442\napp Base44 che abbiamo valutato nominano un progetto Supabase da qualche parte\nnella pagina. Il nostro controllo Row Level Security ha ottenuto una risposta\nutilizzabile da ",[17,175,176],{},"2"," di esse. Su Lovable, dove il database risponde\ndirettamente alla strada, hanno risposto 3.553 su 6.535. Su Bolt, 35 su 267.",[179,180],"diagram",{"alt":181,"caption":182,"src":183},"Due corsie. In quella in alto una lente sta dentro un pannello di piattaforma sigillato, accanto al database, e lo raggiunge, con un segno di spunta. In quella in basso una lente esterna raggiunge la pagina dell’app, con spunta, e una linea tratteggiata dalla stessa lente verso il database si ferma alla parete del pannello, sotto un punto interrogativo.","In alto la scansione di Base44, che lavora dentro la piattaforma dove vivono i tuoi dati. In basso una scansione esterna, che legge la pagina scaricata dai tuoi visitatori e si ferma al muro.","\u002Fblog\u002Fbase44-security-scan\u002Fthe-two-halves-1600x680.png",[10,185,186,187,192],{},"Due app non sono un tasso e non ne stamperemo uno. Quello che il numero chiude è\nchi può guardare: su un’app Base44 le regole di accesso ai tuoi dati si leggono\ndalla pagina Security del tuo pannello e da nessun’altra parte.\n",[188,189,191],"a",{"href":190},"\u002Fblog\u002Fis-base44-safe","Il censimento completo di come hanno votato 5.442 app Base44","\nha i numeri restanti.",[25,194,196],{"id":195},"perché-la-tua-app-pubblicata-può-comunque-portarsi-dietro-una-chiave","Perché la tua app pubblicata può comunque portarsi dietro una chiave",[10,198,199],{},"Perché la scansione legge il tuo progetto e i tuoi visitatori scaricano un file.\nQuattro cose dalla documentazione di Base44 separano le due:",[140,201,202,208,214,220],{},[143,203,204,207],{},[17,205,206],{},"La versione pubblicata può essere più vecchia di quella letta dalla\nscansione."," Il risultato credit protection di Base44 ha uno stato pensato\nproprio per questo, e l’avviso dice \"Publish changes before protecting\ncredits\" quando la tua app online gira ancora su una versione precedente.",[143,209,210,213],{},[17,211,212],{},"Lo stato alla pubblicazione è un avviso."," Risks found apre la pagina\nSecurity, e pubblicare puoi lo stesso.",[143,215,216,219],{},[17,217,218],{},"Un problema che ignori non torna."," I risultati ignorati finiscono in una\nsezione a parte in fondo all’elenco e, nelle parole di Base44, non\nricompaiono alla scansione successiva. Un elenco pulito può voler dire che a\ngiugno qualcuno ha scartato il risultato.",[143,221,222,225],{},[17,223,224],{},"La metà sul codice richiede un piano a pagamento."," Code vulnerability\nscanning gira da Builder in su, come l’integrazione opzionale con Wiz, che\naggiunge analisi statica usando il tuo tenant Wiz.",[10,227,228,229,232],{},"Dal marciapiede quella distanza ha una dimensione. Delle 5.442 app Base44 che\nabbiamo valutato, ",[17,230,231],{},"95 servivano una chiave API di Google nella pagina",", 11\navevano qualcosa con la forma di una password o di un token, una una chiave\nristretta Stripe e una una chiave segreta Stripe. Il controllo delle credenziali\nha risposto su tutte le 5.442 app, quindi sono conteggi e non un campione.",[179,234],{"alt":235,"caption":236,"src":237},"Corsia in alto: una finestra dell’editor e accanto un rapporto con un segno di spunta. Corsia in basso: una pagina dell’app pubblicata con una chiave ambra, raggiunta da tre visitatori sul bordo destro. Una linea tratteggiata unisce le due corsie come due versioni di una stessa app.","La scansione legge la versione che sta nel tuo editor. I tuoi visitatori scaricano quella che hai pubblicato, e secondo lo stesso risultato sui crediti di Base44 può essere una precedente.","\u002Fblog\u002Fbase44-security-scan\u002Fthe-publish-gap-1600x600.png",[10,239,240],{},"Quei 95 sono una quota più bassa che dai vicini, e va detto chiaramente: nella\nstessa rilevazione 727 app Lovable su 18.563 e 200 app Replit su 3.050 si\nportavano dietro una chiave API di Google. Su questa misura le app Base44 sono\npiù tranquille di quelle costruite accanto.",[10,242,243,244,248],{},"È anche il risultato di questo elenco che più probabilmente va bene. Google\nemette un solo tipo di chiave API e si aspetta di vederla nel browser; quello\nche decide se uno sconosciuto può farti crescere una fattura è se l’hai\nlimitata al tuo dominio, e quella limitazione vive nella console di Google, non\nnella tua app.\n",[188,245,247],{"href":246},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","Che cosa controllare su una chiave Google trovata nella tua pagina","\nsono le due impostazioni da leggere.",[10,250,251,252,256],{},"Se preferisci vedere l’elenco completo di quello che la tua app Base44\npubblicata consegna, la nostra scansione gratuita legge il tuo indirizzo online\ne riporta quello che riesce a vedere dall’esterno. Richiede una ventina di\nsecondi e non chiede alcun account:\n",[188,253,255],{"href":254},"\u002Fsecurity-scanner","scansiona la tua app gratis",".",[25,258,260],{"id":259},"il-controllo-di-quellelenco-che-nessuno-si-aspetta","Il controllo di quell’elenco che nessuno si aspetta",[10,262,263],{},"Qualcuno che chiama le funzioni a pagamento della tua app direttamente, senza\npassare per la tua app.",[10,265,266],{},"Base44 lo chiama credit protection, e il risultato compare quando una tua\nfunzione che usa IA, generazione di immagini o email è raggiungibile da fuori la\ntua app. La loro documentazione è netta sulla conseguenza: chi la trova può\neseguirla e spendere i tuoi crediti di integrazione. È classificata High e, a\nseconda della tua app, la correzione è un singolo pulsante Fix che limita quelle\nfunzioni lasciando intatto il tuo accesso, oppure un Resolve with AI che sposta\nle chiamate nel tuo backend.",[179,268],{"alt":269,"caption":270,"src":271},"Una pagina dell’app al centro con una freccia di visitatore che vi entra. Una seconda freccia da una figura a sinistra aggira la pagina e raggiunge direttamente uno scintillio e una pila di monete dietro di essa.","La rotta in basso è quella di cui parla credit protection. La funzione è raggiungibile senza aprire la tua app, e ogni chiamata spende gli stessi crediti delle tue.","\u002Fblog\u002Fbase44-security-scan\u002Fcredits-from-outside-1600x560.png",[10,273,274],{},"È il genere di cosa che una scansione interna fa bene e che una esterna non ha\nmodo onesto di provare. Scoprire se qualcuno può eseguire gratis la tua funzione\nemail vorrebbe dire eseguirla, quindi la nostra scansione lascia quella a Base44\ne riporta quello che riesce a leggere senza spendere niente di tuo.",[25,276,278],{"id":277},"che-cosa-non-controlla-nessuna-delle-due","Che cosa non controlla nessuna delle due",[10,280,281],{},"Tre cose, e l’ultima è l’unica di questa pagina che non si ripara dopo.",[10,283,284,287,288,291,292,256],{},[17,285,286],{},"Il tuo certificato e il tuo dominio, se l’app sta sul tuo indirizzo."," Un’app\nBase44 su un indirizzo ",[131,289,290],{},"base44.app"," eredita quelli di Base44. Spostala su un\ndominio che hai comprato e le date di rinnovo diventano tue, che è\n",[188,293,295],{"href":294},"\u002Fblog\u002Fdomain-and-certificate-expiry","il modo più silenzioso in cui un’app che funziona si spegne",[10,297,298,301],{},[17,299,300],{},"I file in un bucket Supabase Storage che hai collegato."," Delle 1.466 app\nBase44 che nominano un progetto Supabase, il nostro controllo dei bucket è\nriuscito a rispondere su 5. Lo stesso muro che nasconde il database nasconde il\nbucket, e il controllo degli accessi di Base44 copre le tabelle che gestisce\nlei, non un bucket in un progetto che hai collegato tu.",[10,303,304,307,308,312],{},[17,305,306],{},"Se esiste una copia dei tuoi dati."," Questo non lo controlla nessuna\nscansione da nessun lato del muro, perché non è una proprietà della tua app. È\nuna proprietà di quello che hai messo in piedi altrove, e decide se una\nmigrazione andata storta o un agente con accesso al database finisce in un\nripristino o in una email ai tuoi utenti.\n",[188,309,311],{"href":310},"\u002Fblog\u002Fai-agent-deleted-my-database","Il giorno in cui un agente IA ha cancellato un database di produzione","\nmostra come si legge la seconda.",[25,314,316],{"id":315},"tenere-coperte-entrambe-le-metà-dopo-la-pubblicazione","Tenere coperte entrambe le metà dopo la pubblicazione",[10,318,319],{},"Falle girare di nuovo dopo ogni modifica. Un risultato della settimana scorsa\ndescrive l’app della settimana scorsa, e su Base44 pubblicare è un pulsante,\nquindi una tabella aggiunta stamattina o una chiave incollata a mezzanotte è\nonline appena lo premi.",[10,321,322],{},[17,323,324,328],{},[188,325,327],{"href":326},"\u002Fpricing","Reeve Monitor"," ripassa per te i nove controlli esterni:",[140,330,331,334,337,344],{},[143,332,333],{},"tutti e nove i controlli ogni ora, su un massimo di tre app",[143,335,336],{},"se l’app risponde, ogni 60 secondi",[143,338,339,340,343],{},"un messaggio quando un risultato ",[17,341,342],{},"cambia",", così un problema nuovo non aspetta che tu guardi",[143,345,346],{},"un rapporto mensile di quello che ha visto",[10,348,349],{},[17,350,351,352,356],{},"Se la tua app Base44 tiene i dati nel tuo progetto Supabase,\n",[188,353,355],{"href":354},"\u002Fsupabase-backups","Reeve Care"," ne conserva una copia:",[140,358,359,362,365,368,371],{},[143,360,361],{},"una copia cifrata del tuo database Supabase ogni notte, tenuta dove il tuo progetto non arriva",[143,363,364],{},"ogni copia verificata prima di contare, contando le righe di ogni tabella",[143,366,367],{},"un ripristino con un clic quando ti serve",[143,369,370],{},"anche i tuoi file caricati, appena colleghi una credenziale Storage",[143,372,373],{},"tutto quello che fa Monitor",[10,375,376],{},"Entrambi stanno sulla pagina dei prezzi, che a volte è sotto la cifra di\nlistino indicata qui e mai sopra.",[25,378,380],{"id":379},"che-cosa-fare-oggi","Che cosa fare oggi",[382,383,384],"key-takeaways",{},[140,385,386,389,392,395,398],{},[143,387,388],{},"Fai girare la scansione da Dashboard → Security prima della prossima pubblicazione e leggi i risultati prima di premere Fix all issues. La correzione di una funzione non autenticata può chiudere fuori una pagina che volevi lasciare aperta.",[143,390,391],{},"Guarda la sezione Ignored in fondo all’elenco. Un problema che qualcuno ha ignorato mesi fa è ignorato ancora oggi.",[143,393,394],{},"Se la tua app spende crediti di integrazione in IA, immagini o email, leggi per primo il risultato credit protection. È quello dell’elenco che costa soldi da solo.",[143,396,397],{},"Dopo scansiona l’indirizzo pubblicato dall’esterno, perché l’app online può essere una versione precedente a quella letta dalla scansione.",[143,399,400],{},"Tieni una copia dei tuoi dati dove la tua app non arriva, se hai collegato il tuo progetto Supabase. Nessuna delle due scansioni può dirti se esiste.",[10,402,403,404,256],{},"Comincia dalla sezione Ignored, si fa in pochi secondi ed è l’unico posto in cui\nun rapporto pulito può nascondere un problema vero. Se vuoi la versione in\nparole semplici di tutto quello che su un’app Base44 si controlla dall’esterno,\nabbiamo ",[188,405,407],{"href":406},"\u002Fis-your-base44-app-safe","una guida per le app Base44",{"title":409,"searchDepth":410,"depth":410,"links":411},"",3,[412,414,415,416,417,418,419],{"id":27,"depth":413,"text":28},2,{"id":163,"depth":413,"text":164},{"id":195,"depth":413,"text":196},{"id":259,"depth":413,"text":260},{"id":277,"depth":413,"text":278},{"id":315,"depth":413,"text":316},{"id":379,"depth":413,"text":380},"Basi della sicurezza","\u002Fblog\u002Fbase44-security-scan\u002Fcover-1200x630.png","Un pannello di piattaforma sigillato con dentro un database e una lente, e davanti una pagina dell’app che passa una copia ai visitatori sul bordo dell’inquadratura.","La scansione di sicurezza Base44 controlla sette tipi di problema dall’interno. Ecco la metà che legge e che nessun altro legge, e quella che non guarda mai.",false,"md",[427,430,433,436,439],{"q":428,"a":429},"Base44 controlla la mia app per problemi di sicurezza?","Sì. Apri l’editor della tua app, clicca su Dashboard, poi Security, poi Run Security Scan. Controlla sette tipi di problema: le regole di accesso ai tuoi dati, credenziali lasciate allo scoperto, funzioni di backend che rispondono senza controllare chi sta chiedendo, funzioni che consumano i tuoi crediti di integrazione, librerie di terze parti con falle note, schemi nel tuo codice e due header di sicurezza del browser. Ogni risultato arriva con una correzione suggerita che puoi applicare, e la scansione non ne applica nessuna da sola. È inclusa in tutti i piani, anche quello gratuito, ma la metà che legge il codice parte solo da Builder. Letto il 10 ottobre 2026.",{"q":431,"a":432},"La scansione di sicurezza di Base44 basta?","È l’unica scansione capace di controllare la parte più importante di un’app Base44, perché i tuoi dati stanno dietro Base44 e non a un indirizzo pubblico. Quello che non ha motivo di fare è andare a prendere la tua pagina pubblicata e leggere che cosa è uscito al suo interno. Abbiamo valutato 5.442 app Base44 online: la domanda sul database ha avuto risposta su 2 di esse, e 95 servivano una chiave API di Google nella pagina. Fai girare la scansione interna prima di pubblicare e una esterna dopo.",{"q":434,"a":435},"Perché uno scanner esterno non può controllare il mio database Base44?","Perché per strada non c’è niente a cui bussare. Sulla maggior parte dei builder la tua app parla con il suo database direttamente dal browser del visitatore, quindi il database ha un indirizzo pubblico, la tua pagina se lo porta dietro e chiunque può tirarlo fuori e fare domande. Un’app Base44 manda le sue richieste attraverso Base44. Delle 1.466 app Base44 che abbiamo valutato e che nominano un progetto Supabase da qualche parte nella pagina, il nostro controllo Row Level Security ha ottenuto una risposta utilizzabile da 2. Su Lovable, dove il database risponde direttamente alla strada, hanno risposto 3.553 su 6.535.",{"q":437,"a":438},"Che cosa trova una scansione esterna che Base44 non trova?","Quello che i tuoi visitatori ricevono adesso. Base44 legge il progetto che sta nel tuo editor, e quattro cose dalla loro documentazione separano quello dall’app online: la versione pubblicata può essere più vecchia di quella letta dalla scansione, la scansione avvisa alla pubblicazione senza bloccarla, un problema ignorato una volta non torna, e l’analisi del codice richiede il piano Builder. Nelle 5.442 app Base44 che abbiamo valutato, 95 avevano una chiave API di Google nella pagina, 11 qualcosa con la forma di una password o di un token, una una chiave ristretta Stripe e una una chiave segreta Stripe.",{"q":440,"a":441},"Devo farle girare entrambe?","Rispondono a metà diverse, quindi una non sostituisce l’altra. Fai girare la scansione Base44 dalla pagina Security prima di pubblicare, leggi i risultati prima di premere Fix all issues, e poi controlla l’indirizzo pubblicato dall’esterno. Una scansione esterna richiede una ventina di secondi e non chiede alcun account.","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",[444,445,446,447,448,449,450],"scansione di sicurezza base44","base44 security scan","base44 controlla la sicurezza","controllo sicurezza app base44","pannello sicurezza base44","base44 controllo rls","revisione sicurezza base44",{},true,"Scansione di sicurezza Base44: cosa vede solo lei","\u002Fblog\u002Fbase44-security-scan","2026-10-10",{"title":5,"description":423},"blog\u002Fbase44-security-scan",[459,460,461],"La scansione di sicurezza Base44 gira dall’interno del tuo progetto e controlla sette tipi di problema, dalle regole di accesso ai tuoi dati fino alle librerie da cui dipende l’app. È inclusa in tutti i piani, e uno dei sette controlli parte solo da Builder in su.","Su un’app Base44 è l’unica scansione capace di rispondere a ciò che si intende davvero con \"la mia app è sicura\": se uno sconosciuto può leggere i tuoi dati. Abbiamo valutato 5.442 app Base44 online e abbiamo potuto interrogarne 2.","Quello che non ha motivo di leggere è la pagina che i tuoi visitatori scaricano. In 95 di quelle 5.442 app lì dentro c’era una chiave API di Google.","3Ro2O53twxDjBiLa7eZJAnJodjNUlrb6beaGWvL0cBo",[464,470,471,477,483,489,494,500,506,512,518,524,530,536,543,549,555,560,566,572,578,583,589,595,601,607,613,619,625,631,637,643,649,655,661,667,673,679,685,691,697,703,709,715,721,727,733,739,745,751,757,763,768,773,779,784,790,796,802,807,813],{"path":465,"title":466,"description":467,"published":468,"category":420,"image":469,"draft":424},"\u002Fblog\u002Fstorage-upload-violates-row-level-security","\"Row-level security policy for table objects\" in upload","\"New row violates row-level security policy for table objects\" vuol dire che al tuo upload manca una regola insert. Rendere pubblico il bucket non ne aggiunge.","2026-10-11","\u002Fblog\u002Fstorage-upload-violates-row-level-security\u002Fcard-800x500.png",{"path":454,"title":5,"description":423,"published":455,"category":420,"image":442,"draft":424},{"path":472,"title":473,"description":474,"published":475,"category":420,"image":476,"draft":424},"\u002Fblog\u002Fapi-key-leaked-what-to-do","La tua chiave API è trapelata. L'ordine in cui muoverti","Una chiave API è trapelata e non sai da cosa cominciare. Non tutte le chiavi nel frontend lo sono, e l'ordine conta più della velocità.","2026-10-09","\u002Fblog\u002Fapi-key-leaked-what-to-do\u002Fcard-800x500.png",{"path":478,"title":479,"description":480,"published":481,"category":420,"image":482,"draft":424},"\u002Fblog\u002Finfinite-recursion-in-policy-for-relation","\"Infinite recursion detected in policy\" senza disattivare RLS","\"Infinite recursion detected in policy for relation\" significa che la tua policy ha interrogato la tabella che protegge. Ecco come rompere il cerchio.","2026-10-08","\u002Fblog\u002Finfinite-recursion-in-policy-for-relation\u002Fcard-800x500.png",{"path":484,"title":485,"description":486,"published":487,"category":420,"image":488,"draft":424},"\u002Fblog\u002Fno-api-key-found-in-request","\"No API key found in request\" su Supabase, e la correzione sbagliata","\"No API key found in request\" significa che la tua richiesta è arrivata a Supabase senza chiave. Quasi tutte le risposte indicano le regole del database.","2026-10-07","\u002Fblog\u002Fno-api-key-found-in-request\u002Fcard-800x500.png",{"path":190,"title":490,"description":491,"published":492,"category":420,"image":493,"draft":424},"Base44 è sicuro? Cosa abbiamo trovato in 5.442 app","Base44 è sicuro? Abbiamo passato nove controlli su 5.442 app Base44 online. Quasi tutte hanno preso B, per motivi che il proprietario non ha mai scelto.","2026-10-06","\u002Fblog\u002Fis-base44-safe\u002Fcard-800x500.png",{"path":495,"title":496,"description":497,"published":498,"category":420,"image":499,"draft":424},"\u002Fblog\u002Fmove-a-secret-to-an-edge-function","Nascondere una chiave API: spostala in una Edge Function Supabase","Nascondere una chiave API vuol dire toglierla dal browser, e una Edge Function Supabase è il posto più piccolo dove metterla. Due passaggi contano di più.","2026-10-05","\u002Fblog\u002Fmove-a-secret-to-an-edge-function\u002Fcard-800x500.png",{"path":501,"title":502,"description":503,"published":504,"category":420,"image":505,"draft":424},"\u002Fblog\u002Fenv-file-exposed-on-your-server","Il tuo file .env è esposto? I dodici percorsi da provare","Il tuo file .env è esposto sul tuo server web? Dodici indirizzi te lo dicono, e una risposta significa che tutto quello che contiene è già pubblico.","2026-10-04","\u002Fblog\u002Fenv-file-exposed-on-your-server\u002Fcard-800x500.png",{"path":507,"title":508,"description":509,"published":510,"category":420,"image":511,"draft":424},"\u002Fblog\u002Fis-v0-safe","Sicurezza di v0: tutte le 1.790 app v0 analizzate hanno preso A","La sicurezza di v0 misurata su 1.790 app v0 online: tutte hanno preso A. Solo 17 nominavano un database, ed è soprattutto questo che misura quella A.","2026-10-03","\u002Fblog\u002Fis-v0-safe\u002Fcard-800x500.png",{"path":513,"title":514,"description":515,"published":516,"category":420,"image":517,"draft":424},"\u002Fblog\u002Fis-bolt-safe","Bolt è sicuro? Cosa abbiamo trovato in 1.123 app Bolt","Bolt è sicuro? Abbiamo passato 1.123 app Bolt online per nove controlli. L’hosting era pulito. I rilievi erano chiavi e tabelle aperte dentro le app.","2026-10-02","\u002Fblog\u002Fis-bolt-safe\u002Fcard-800x500.png",{"path":519,"title":520,"description":521,"published":522,"category":420,"image":523,"draft":424},"\u002Fblog\u002Fis-supabase-down-or-your-app","Supabase è down o è la tua app? Come capirlo","Supabase è down o è la tua app? Un progetto in pausa, un database pieno e un tuo errore sembrano la stessa cosa. Quattro controlli li separano.","2026-10-01","\u002Fblog\u002Fis-supabase-down-or-your-app\u002Fcard-800x500.png",{"path":525,"title":526,"description":527,"published":528,"category":420,"image":529,"draft":424},"\u002Fblog\u002Fdoes-supabase-encrypt-my-data","Supabase crittografa i miei dati? Sì. Ecco da cosa protegge","Supabase crittografa i dati? Sì: AES-256 a riposo, TLS in transito, SOC 2 e ISO 27001. Cosa copre ciascuno, e la fuga di dati che nessuno di questi ferma.","2026-09-30","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fcard-800x500.png",{"path":531,"title":532,"description":533,"published":534,"category":420,"image":535,"draft":424},"\u002Fblog\u002Fsupabase-free-plan-limits","Supabase: prezzi e limiti del piano gratuito, uno per uno","Prezzi e limiti del piano gratuito di Supabase: 500 MB di database, 5 GB di egress e nessun backup. Cosa succede a ogni soglia e cosa cambia Pro a $25.","2026-09-29","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",{"path":537,"title":538,"description":539,"published":540,"category":541,"image":542,"draft":424},"\u002Fblog\u002Ftest-your-supabase-backup","Testa il tuo backup di Supabase prima del giorno in cui serve","Come testare il tuo backup di Supabase: ripristinarlo in un progetto di prova, contare le righe, accedere e cercare la riga che manca a un file troncato.","2026-09-28","Backups","\u002Fblog\u002Ftest-your-supabase-backup\u002Fcard-800x500.png",{"path":544,"title":545,"description":546,"published":547,"category":541,"image":548,"draft":424},"\u002Fblog\u002Fsupabase-backup-github-action","Backup gratis di Supabase con una GitHub Action, e il tranello","Un backup di Supabase con una GitHub Action è gratis e va bene per molte app. Il workflow, la connection string giusta e l'egress di ogni esecuzione.","2026-09-27","\u002Fblog\u002Fsupabase-backup-github-action\u002Fcard-800x500.png",{"path":550,"title":551,"description":552,"published":553,"category":541,"image":554,"draft":424},"\u002Fblog\u002Fdownload-your-supabase-backup","Perché non puoi scaricare il tuo backup di Supabase","Non puoi scaricare il tuo backup di Supabase su un progetto recente, perché la copia giornaliera è uno snapshot fisico. Come verificarlo e tenere una copia tua.","2026-09-26","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fcard-800x500.png",{"path":556,"title":557,"description":558,"published":553,"category":420,"image":559,"draft":424},"\u002Fblog\u002Fsupabase-permission-denied-for-table","Supabase \"permission denied for table\": il grant mancante","Dal 30 ottobre una nuova tabella di Supabase risponde \"permission denied for table\" finché non concedi l'accesso. Il grant della mail è metà della soluzione.","\u002Fblog\u002Fsupabase-permission-denied-for-table\u002Fcard-800x500.png",{"path":561,"title":562,"description":563,"published":564,"category":420,"image":565,"draft":424},"\u002Fblog\u002Fopen-api-endpoint-exposed","Un endpoint API aperto è un problema di sicurezza? Leggi il JSON","La tua scansione ha segnalato un endpoint API aperto. Quanto conti dipende da che cosa è tornato, e la maggior parte di quelli trovati era della piattaforma.","2026-09-25","\u002Fblog\u002Fopen-api-endpoint-exposed\u002Fcard-800x500.png",{"path":567,"title":568,"description":569,"published":570,"category":420,"image":571,"draft":424},"\u002Fblog\u002Flovable-security-scan","Scansione di sicurezza Lovable: cosa non può dimostrare","Scansione di sicurezza Lovable: cosa controllano Quick scan e Deep scan, quando parte ciascuno, e l’unica cosa che nessuna scansione dall’interno dimostra.","2026-09-24","\u002Fblog\u002Flovable-security-scan\u002Fcard-800x500.png",{"path":573,"title":574,"description":575,"published":576,"category":541,"image":577,"draft":424},"\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","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":294,"title":579,"description":580,"published":581,"category":420,"image":582,"draft":424},"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":584,"title":585,"description":586,"published":587,"category":420,"image":588,"draft":424},"\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":590,"title":591,"description":592,"published":593,"category":420,"image":594,"draft":424},"\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":596,"title":597,"description":598,"published":599,"category":420,"image":600,"draft":424},"\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":602,"title":603,"description":604,"published":605,"category":420,"image":606,"draft":424},"\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":608,"title":609,"description":610,"published":611,"category":420,"image":612,"draft":424},"\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":614,"title":615,"description":616,"published":617,"category":420,"image":618,"draft":424},"\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":620,"title":621,"description":622,"published":623,"category":420,"image":624,"draft":424},"\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":626,"title":627,"description":628,"published":629,"category":541,"image":630,"draft":424},"\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":632,"title":633,"description":634,"published":635,"category":541,"image":636,"draft":424},"\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":638,"title":639,"description":640,"published":641,"category":541,"image":642,"draft":424},"\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":644,"title":645,"description":646,"published":647,"category":420,"image":648,"draft":424},"\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":650,"title":651,"description":652,"published":653,"category":420,"image":654,"draft":424},"\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":656,"title":657,"description":658,"published":659,"category":420,"image":660,"draft":424},"\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":662,"title":663,"description":664,"published":665,"category":420,"image":666,"draft":424},"\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":668,"title":669,"description":670,"published":671,"category":420,"image":672,"draft":424},"\u002Fblog\u002Fvibe-coding-security-scanners-compared","Scanner di sicurezza per vibe coding a confronto, il nostro incluso","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.","2026-09-07","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",{"path":674,"title":675,"description":676,"published":677,"category":420,"image":678,"draft":424},"\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":680,"title":681,"description":682,"published":683,"category":420,"image":684,"draft":424},"\u002Fblog\u002Fvibe-coding-security-scanner","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":686,"title":687,"description":688,"published":689,"category":420,"image":690,"draft":424},"\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":692,"title":693,"description":694,"published":695,"category":420,"image":696,"draft":424},"\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":698,"title":699,"description":700,"published":701,"category":420,"image":702,"draft":424},"\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":704,"title":705,"description":706,"published":707,"category":541,"image":708,"draft":424},"\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":710,"title":711,"description":712,"published":713,"category":420,"image":714,"draft":424},"\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":716,"title":717,"description":718,"published":719,"category":541,"image":720,"draft":424},"\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":722,"title":723,"description":724,"published":725,"category":420,"image":726,"draft":424},"\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":728,"title":729,"description":730,"published":731,"category":420,"image":732,"draft":424},"\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":734,"title":735,"description":736,"published":737,"category":420,"image":738,"draft":424},"\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":740,"title":741,"description":742,"published":743,"category":420,"image":744,"draft":424},"\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":746,"title":747,"description":748,"published":749,"category":541,"image":750,"draft":424},"\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":752,"title":753,"description":754,"published":755,"category":541,"image":756,"draft":424},"\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":758,"title":759,"description":760,"published":761,"category":420,"image":762,"draft":424},"\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":246,"title":764,"description":765,"published":766,"category":420,"image":767,"draft":424},"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":310,"title":769,"description":770,"published":771,"category":541,"image":772,"draft":424},"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":774,"title":775,"description":776,"published":777,"category":420,"image":778,"draft":424},"\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":780,"title":781,"description":782,"published":777,"category":420,"image":783,"draft":424},"\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":785,"title":786,"description":787,"published":788,"category":420,"image":789,"draft":424},"\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":791,"title":792,"description":793,"published":794,"category":541,"image":795,"draft":424},"\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":797,"title":798,"description":799,"published":800,"category":420,"image":801,"draft":424},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","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":803,"title":804,"description":805,"published":800,"category":541,"image":806,"draft":424},"\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":808,"title":809,"description":810,"published":811,"category":541,"image":812,"draft":424},"\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":814,"title":815,"description":816,"published":811,"category":420,"image":817,"draft":424},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","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",1791705965104]