[{"data":1,"prerenderedAt":904},["ShallowReactive",2],{"blog-it-domain-and-certificate-expiry":3,"blog-index-it":551},{"id":4,"title":5,"body":6,"category":510,"cover":511,"coverAlt":512,"description":513,"draft":514,"extension":515,"faq":516,"image":529,"keywords":530,"meta":539,"navigation":540,"ogTitle":5,"path":541,"published":542,"seo":543,"stem":544,"tldr":545,"updated":542,"__hash__":550},"blog_it\u002Fblog\u002Fdomain-and-certificate-expiry.md","Dominio scaduto, sito offline: cosa succede adesso",{"type":7,"value":8,"toc":497},"minimark",[9,13,16,28,33,36,44,58,64,70,73,79,93,97,100,103,106,109,113,116,122,128,133,136,202,205,209,212,221,224,227,232,241,245,248,263,266,327,330,334,337,343,349,360,364,367,375,429,436,439,442,453,460,464,489],[10,11,12],"p",{},"Venerdì la tua app funzionava. Lunedì c’è un avviso del browser a pagina intera,\noppure non c’è più niente, e nel tuo codice non è cambiato nulla. Qualcuno ti\nmanda uno screenshot e tu digiti le parole che ci sono sopra in un motore di\nricerca: dominio scaduto, sito offline.",[10,14,15],{},"Ecco la parte che la maggior parte dei consigli su questo tema sbaglia. Quella\nmattina la possono produrre due guasti diversi, corrono su due orologi diversi,\ne quello che sembra meno costoso è quello serio. Un certificato scaduto è\nrumoroso, imbarazzante e sostituibile oggi stesso. Un dominio scaduto all’inizio\nè silenzioso, e se lo lasci lì abbastanza a lungo la tua app non è offline.\nAppartiene a qualcun altro.",[10,17,18,19,23,24,27],{},"Fra la tua app e le persone che la usano ci sono due cose. Il ",[20,21,22],"strong",{},"dominio"," è il\ncontratto d’affitto del negozio: il nome sopra la porta e il diritto di\ncontinuare a usarlo. Il ",[20,25,26],{},"certificato"," è la licenza in vetrina che dice che\nquesto negozio è davvero quello dell’insegna. Li affitti entrambi. Entrambi si\nrinnovano a una data che hai impostato una volta e che non guardi da allora.",[29,30,32],"h2",{"id":31},"cosa-succede-quando-scade-il-mio-dominio","Cosa succede quando scade il mio dominio?",[10,34,35],{},"La tua app si spegne, e poi parte un conto alla rovescia in tre fasi.",[10,37,38,39,43],{},"Per ",[40,41,42],"code",{},".com"," e gli altri domini generici il calendario arriva da ICANN e non dal\ntuo registrar, quindi è sostanzialmente lo stesso ovunque tu abbia comprato il\nnome.",[10,45,46,49,50,57],{},[20,47,48],{},"Ancora tuo, già spento."," Il tuo registrar tiene il nome rinnovabile al prezzo\nnormale per una finestra che sceglie lui, di solito qualche settimana. La\n",[51,52,56],"a",{"href":53,"rel":54},"https:\u002F\u002Fwww.icann.org\u002Fresources\u002Fpages\u002Ferrp-2013-02-28-en",[55],"nofollow","Expired Registration Recovery Policy","\ndi ICANN gli impone di spegnere il tuo DNS durante quella finestra: per almeno\ngli ultimi otto giorni in cui il nome è ancora rinnovabile, deve smettere di\npuntare da qualsiasi parte. La tua app va quindi offline molto prima che il nome\nvada da qualche parte, ed è di solito così che il proprietario se ne accorge.",[10,59,60,63],{},[20,61,62],{},"Cancellato, e ancora recuperabile."," Quando il registrar cancella\ndefinitivamente la registrazione, parte una Redemption Grace Period di 30\ngiorni. ICANN la impone a quasi tutti i registri generici. Solo tu puoi\nriportare indietro il nome in quel periodo, solo tramite il registrar che lo ha\ncancellato, e paghi una penale di ripristino oltre al rinnovo. ICANN non\nstabilisce quella cifra, ed è molto più alta di un rinnovo.",[10,65,66,69],{},[20,67,68],{},"Pending delete."," Circa cinque giorni in cui né tu né il tuo registrar potete\ncambiare nulla. Poi il nome viene rilasciato.",[10,71,72],{},"La stessa policy dice che il tuo registrar deve scriverti: due volte prima che la\nregistrazione scada, circa un mese e una settimana prima, e di nuovo entro cinque\ngiorni dopo. Quindi se un tuo dominio è mai scaduto senza preavviso, la cosa da\ncontrollare non è il calendario. È quale indirizzo c’è sul tuo account presso il\nregistrar.",[74,75],"diagram",{"alt":76,"caption":77,"src":78},"Una fascia orizzontale in quattro parti, con una figura al suo estremo sinistro. La prima parte è piena; una riga segna la data di scadenza e la fascia diventa tratteggiata. Una seconda riga segna la cancellazione, dopo la quale un segmento è ambra con il numero 30 e il successivo è rosso con il numero 5. La fascia poi finisce, seguita da uno spazio vuoto punteggiato e da altre tre figure.","Le tre fasi dopo la scadenza di un dominio, per .com e gli altri domini generici. Nelle prime due il nome è recuperabile, dopo la terza è di chiunque.","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fthe-clock-after-expiry-1600x540.png",[10,80,81,82,85,86,85,89,92],{},"I domini nazionali hanno i loro calendari. ",[40,83,84],{},".io",", ",[40,87,88],{},".co.uk",[40,90,91],{},".de"," e gli altri\nstanno fuori da quella policy, e alcuni sono parecchio meno indulgenti. Se la tua\napp è su uno di questi, leggi la pagina sul ciclo di vita del tuo registro invece\ndi questa sezione.",[29,94,96],{"id":95},"qualcuno-può-prendersi-il-mio-dominio-dopo-la-scadenza","Qualcuno può prendersi il mio dominio dopo la scadenza?",[10,98,99],{},"Sì, una volta rilasciato, ed è questo che rende il caso diverso da tutto il resto\ndi un report di sicurezza.",[10,101,102],{},"Ogni altro rilievo è un errore dentro qualcosa che possiedi. Puoi andare a\nsistemarlo. Un dominio rilasciato esce del tutto dalla tua proprietà: il nome è\nregistrato a qualcun altro, e tutto quello che puntava alla tua app adesso punta\na quella persona. I preferiti. Il link nella tua email di benvenuto. L’indirizzo\nsul biglietto che hai distribuito a una conferenza. Il link per reimpostare la\npassword che hai mandato la settimana scorsa.",[10,104,105],{},"I nomi vengono anche presi in fretta. Ci sono aziende il cui intero prodotto\nconsiste nel chiedere un dominio nel secondo in cui si libera, ed è per questo\nche un nome con un minimo di traffico resta raramente a lungo senza proprietario.",[10,107,108],{},"Puoi comunque provare a ricomprarlo. Stai trattando con chi è arrivato per\nprimo, al prezzo che dice lui. Un certificato scaduto stamattina si può\nsostituire stamattina; un dominio rilasciato il mese scorso potrebbe non essere\nnemmeno in vendita.",[29,110,112],{"id":111},"perché-il-mio-sito-dice-non-sicuro-se-ieri-andava-tutto-bene","Perché il mio sito dice «non sicuro» se ieri andava tutto bene?",[10,114,115],{},"Lo possono produrre due cose diverse, e quale delle due hai è scritto sullo\nschermo.",[10,117,118,121],{},[20,119,120],{},"Una dicitura nella barra degli indirizzi"," è il browser che ti dice che la\npagina è arrivata in HTTP semplice, senza alcun certificato di mezzo. La tua\npagina si carica comunque sotto. Non è scaduto niente. Qualcosa sta servendo il\ntuo sito senza HTTPS, ed è un problema a sé, non questo.",[10,123,124,127],{},[20,125,126],{},"Un certificato scaduto o non attendibile non è una dicitura. È un muro."," La\ntua app viene sostituita da una pagina intera: in Chrome quella che dice che la\nconnessione non è privata, in Firefox l’avviso su un potenziale rischio per la\nsicurezza. Per arrivare al tuo sito bisogna trovare un pulsante Avanzate e\ncliccare attraverso un avviso che dice che il sito non è sicuro. La maggior parte\ndei visitatori non lo farà.",[74,129],{"alt":130,"caption":131,"src":132},"Due finestre di browser. Nella prima la pagina si vede normalmente e nella barra degli indirizzi c’è un piccolo cerchio sbarrato. Nella seconda non c’è nessuna pagina: un pannello opaco riempie la finestra, con un segno di avviso e un solo pulsante.","A sinistra la pagina si carica ancora e il browser la sta commentando. A destra il certificato ha fallito e non c’è più nessuna pagina da commentare.","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fa-label-and-a-wall-1600x820.png",[10,134,135],{},"Leggi il codice sotto l’avviso prima di cambiare qualsiasi cosa, perché ti dice\ndi quale riparazione hai bisogno:",[137,138,139,155],"table",{},[140,141,142],"thead",{},[143,144,145,149,152],"tr",{},[146,147,148],"th",{},"Cosa stampa il browser",[146,150,151],{},"Cosa significa",[146,153,154],{},"Cosa lo risolve",[156,157,158,177,191],"tbody",{},[143,159,160,171,174],{},[161,162,163,166,167,170],"td",{},[40,164,165],{},"NET::ERR_CERT_DATE_INVALID"," in Chrome, ",[40,168,169],{},"SEC_ERROR_EXPIRED_CERTIFICATE"," in Firefox",[161,172,173],{},"Il certificato ha superato la sua data di fine",[161,175,176],{},"Un certificato nuovo",[143,178,179,185,188],{},[161,180,181,184],{},[40,182,183],{},"NET::ERR_CERT_AUTHORITY_INVALID"," in Chrome",[161,186,187],{},"Non l’ha firmato nulla di cui il browser si fidi, oppure un anello della catena non è mai stato installato",[161,189,190],{},"Un certificato di un’autorità attendibile, o l’anello mancante. Rinnovare non serve",[143,192,193,196,199],{},[161,194,195],{},"Il messaggio che dice che l’orologio del dispositivo è avanti o indietro",[161,197,198],{},"È il dispositivo del visitatore ad avere la data sbagliata",[161,200,201],{},"Niente dalla tua parte",[10,203,204],{},"Quell’ultima riga vale la pena leggerla prima di andare a cercare dal tuo host.\nUna sola persona che segnala un avviso sul certificato può essere il portatile di\nquella persona.",[29,206,208],{"id":207},"perché-un-certificato-https-smette-di-rinnovarsi-senza-che-si-rompa-nulla","Perché un certificato HTTPS smette di rinnovarsi senza che si rompa nulla",[10,210,211],{},"Perché il rinnovo dovrebbe avvenire un mese prima che il certificato conti\ndavvero, e un rinnovo fallito non cambia niente che tu possa vedere.",[10,213,214,215,220],{},"La maggior parte delle app costruite così è servita da un host che prende i\ncertificati da Let’s Encrypt e li rinnova per te. Let’s Encrypt\n",[51,216,219],{"href":217,"rel":218},"https:\u002F\u002Fletsencrypt.org\u002Fdocs\u002Ffaq\u002F",[55],"emette certificati da 90 giorni e consiglia di rinnovare ogni 60 giorni",",\nquindi il processo che tiene in vita il tuo sito dovrebbe riuscire con 30 giorni\nancora davanti.",[10,222,223],{},"Per ottenerne uno nuovo, il tuo host deve dimostrare all’autorità di controllare\nancora il tuo nome: o servendo un file che l’autorità chiede sul tuo dominio, o\nscrivendo un record nel tuo DNS. Tutto ciò che rompe quella prova rompe il\nrinnovo. Spostare il DNS a un altro fornitore. Mettere un proxy davanti all’app.\nFar puntare il nome altrove per provare una cosa e poi riportarlo indietro.\nAggiungere un record CAA, cioè una voce DNS che elenca quali autorità possono\nemettere per il tuo dominio e che vieta in silenzio ogni autorità che non\nelenca.",[10,225,226],{},"Niente di tutto questo manda giù il sito. Il certificato che hai già continua a\nfunzionare, quindi l’app resta online e il lucchetto resta lì mentre il rinnovo\nfallisce di nuovo ogni giorno per un mese senza che nessuno guardi.",[74,228],{"alt":229,"caption":230,"src":231},"Due tracce sovrapposte su un unico asse segnato 0, 60 e 90. La traccia superiore è il rinnovo: un riquadro con dentro un segno di spunta fino al giorno 60, poi sei croci distanziate fino al giorno 90. La traccia inferiore è quello che vedono i visitatori: colore d’accento ininterrotto su tutto l’asse, che al giorno 90 diventa un blocco ambra.","Il rinnovo comincia a fallire al giorno 60 e il sito sembra perfetto fino al giorno 90. Tutto quello che te lo avrebbe detto sta sulla traccia superiore.","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fnothing-visible-for-30-days-1600x620.png",[10,233,234,235,240],{},"Anche la lettera che una volta arrivava ha smesso.\n",[51,236,239],{"href":237,"rel":238},"https:\u002F\u002Fletsencrypt.org\u002F2025\u002F06\u002F26\u002Fexpiration-notification-service-has-ended",[55],"Let’s Encrypt ha chiuso le sue email di notifica di scadenza il 4 giugno 2025",",\ndopo averlo annunciato a gennaio dello stesso anno: ormai il rinnovo è\nautomatizzato per la maggior parte degli iscritti, e tenere milioni di indirizzi\nemail legati ai dati di emissione era un costo per la privacy che preferivano non\nsostenere. Entrambe le ragioni sono buone. Ha comunque tolto l’unico messaggio\nche raggiungeva una persona quando l’automatismo si fermava.",[29,242,244],{"id":243},"lovable-o-vercel-rinnovano-il-certificato-al-posto-mio","Lovable o Vercel rinnovano il certificato al posto mio?",[10,246,247],{},"Finché la tua app sta sul sottodominio del builder, entrambe le date sono loro e\nnessuna delle due è qualcosa che tu possa sbagliare.",[10,249,250,251,254,255,258,259,262],{},"Su ",[40,252,253],{},"tuaapp.lovable.app",", o su un indirizzo ",[40,256,257],{},"vercel.app"," o ",[40,260,261],{},"netlify.app",", la\npiattaforma possiede il nome, rinnova la registrazione ed emette e rinnova il\ncertificato. Il nostro controllo sul dominio non va nemmeno a cercarli. Segnala\nche l’app sta su un dominio gestito da una piattaforma e che qui per te non c’è\nnulla da seguire.",[10,264,265],{},"Collegare un dominio tuo sposta di sicuro una delle due cose su di te, e l’altra\na volte:",[137,267,268,281],{},[140,269,270],{},[143,271,272,275,278],{},[146,273,274],{},"Cosa",[146,276,277],{},"Su un sottodominio del builder",[146,279,280],{},"Sul tuo dominio",[156,282,283,294,305,316],{},[143,284,285,288,291],{},[161,286,287],{},"Di chi è il nome",[161,289,290],{},"Della piattaforma",[161,292,293],{},"Tuo, tramite il tuo registrar",[143,295,296,299,302],{},[161,297,298],{},"Chi rinnova la registrazione",[161,300,301],{},"La piattaforma, in automatico",[161,303,304],{},"Tu, su una carta",[143,306,307,310,313],{},[161,308,309],{},"Chi emette e rinnova il certificato",[161,311,312],{},"La piattaforma",[161,314,315],{},"Di solito ancora il tuo host, in automatico, per il tuo dominio",[143,317,318,321,324],{},[161,319,320],{},"Chi lo viene a sapere quando si rompe",[161,322,323],{},"Non serve a nessuno",[161,325,326],{},"Tu, se qualcosa sta guardando",[10,328,329],{},"La riga del rinnovo è quella che sorprende. Nel builder non lo annuncia niente.\nAggiungi un dominio, l’app si carica lì sopra, e adesso possiedi una voce di\ncalendario che non hai mai scritto.",[29,331,333],{"id":332},"come-li-controllo-entrambi-adesso","Come li controllo entrambi adesso?",[10,335,336],{},"Da fuori, senza accedere a nulla.",[10,338,339,342],{},[20,340,341],{},"Il certificato."," Apri la tua app, clicca sul lucchetto nella barra degli\nindirizzi, apri i dettagli del certificato e leggi la data di fine validità. Su\nun certificato standard da 90 giorni, più di 30 giorni residui vuol dire che il\nrinnovo sta funzionando. Meno di 30 giorni vuol dire che il rinnovo che sarebbe\ngià dovuto avvenire non è avvenuto.",[10,344,345,348],{},[20,346,347],{},"Il dominio."," Accedi al tuo registrar e leggi tre cose. La data di scadenza. Se\nla carta dietro il rinnovo automatico è ancora valida, perché il rinnovo\nautomatico con una carta morta è il modo più comune in cui questo capita a\nqualcuno che era sicuro che non potesse capitare. E l’indirizzo email\nsull’account, perché è lì che arriverà ogni avviso che ti spetta.",[10,350,351,354,355,359],{},[20,352,353],{},"Entrambi insieme."," La nostra scansione gratuita legge tutti e due da fuori,\ninsieme ad altri sette controlli, in una ventina di secondi e senza account:\n",[51,356,358],{"href":357},"\u002Fsecurity-scanner","scansiona la tua app",". Stampa la data di fine del certificato\ne, per un dominio che hai registrato tu, quella della registrazione. Su un\nsottodominio del builder lo dice, invece di inventarti una data.",[29,361,363],{"id":362},"cosa-abbiamo-trovato-su-30998-app","Cosa abbiamo trovato su 30.998 app",[10,365,366],{},"Entrambi i rilievi sono rari, e ognuno di essi apparteneva a qualcuno che aveva\ncollegato un dominio suo.",[10,368,369,370,374],{},"Tra il 12 e il 14 agosto 2026 abbiamo passato gli stessi nove controlli esterni\nsu 30.998 app online costruite con Lovable, Bolt, v0, Replit e Base44. Fra le app\nda cui ciascun controllo ha ottenuto una risposta, 55 su 30.980 avevano un\ndominio scaduto o in scadenza, e 32 su 30.851 avevano un certificato scaduto, in\nscadenza o non attendibile. I numeri completi sono nel\n",[51,371,373],{"href":372},"\u002Fresearch\u002Fvibe-coded-app-security-2026","nostro report di scansione",".",[137,376,377,387],{},[140,378,379],{},[143,380,381,384],{},[146,382,383],{},"Rilievo",[146,385,386],{},"App",[156,388,389,397,405,413,421],{},[143,390,391,394],{},[161,392,393],{},"Dominio in scadenza entro 60 giorni",[161,395,396],{},"54",[143,398,399,402],{},[161,400,401],{},"Dominio già scaduto",[161,403,404],{},"1",[143,406,407,410],{},[161,408,409],{},"Certificato in scadenza entro 30 giorni",[161,411,412],{},"19",[143,414,415,418],{},[161,416,417],{},"Certificato già scaduto",[161,419,420],{},"5",[143,422,423,426],{},[161,424,425],{},"Certificato di cui nessun browser si fida",[161,427,428],{},"8",[10,430,431,432,435],{},"Fanno 87 app, che sembra un errore di arrotondamento finché non ti chiedi chi\nfossero. 1.090 delle scansioni di quella campagna erano su un’app il cui\nproprietario aveva registrato il dominio. ",[20,433,434],{},"Tutte e 87 erano in quel gruppo",", e\nnemmeno una app su un sottodominio del builder portava uno dei due rilievi. Fra\nle app che questo problema lo possono avere, fa circa una su dodici.",[10,437,438],{},"Gran parte di quella colonna è un avviso e non un disservizio, e quella è la\nparte utile: qualcuno era ancora in tempo. Cinque dei domini erano entro sette\ngiorni e uno era già andato. Tredici delle app mostravano a ogni visitatore un\navviso del browser nel momento in cui abbiamo guardato, cinque con un certificato\nscaduto e otto con uno di cui non si fida niente.",[10,440,441],{},"In tutti e due i casi una data passa mentre nessuno guarda, ed è esattamente il\ntipo di problema per cui qualcosa che controlla ogni ora serve davvero.",[10,443,444,448,449,452],{},[51,445,447],{"href":446},"\u002Fpricing","Reeve Monitor"," ripassa tutti e nove i controlli ogni ora su un massimo\ndi tre app, controlla la raggiungibilità ogni 60 secondi e manda un report\nmensile. Per questi due rilievi fa una cosa che non fa per nient’altro: ti scrive\nche un certificato o una registrazione sta per finire ",[20,450,451],{},"anche quando il tuo voto\nnon è cambiato",". Monitor costa €12 al mese di listino, con sette giorni gratis\nprima del primo addebito, e la pagina dei prezzi a volte sta sotto la cifra\nindicata qui e mai sopra.",[10,454,455,456,374],{},"Monitor guarda e basta. Se vuoi anche una copia del tuo database tenuta in un\nposto che il tuo builder non può raggiungere,\n",[51,457,459],{"href":458},"\u002Fsupabase-backups","quello è Care, e copre Supabase",[29,461,463],{"id":462},"cosa-fare-adesso","Cosa fare adesso",[465,466,467],"key-takeaways",{},[468,469,470,474,477,480,483,486],"ul",{},[471,472,473],"li",{},"Leggi la data di fine validità del certificato dal lucchetto nella barra degli indirizzi. Più di 30 giorni residui vuol dire che il rinnovo funziona.",[471,475,476],{},"Accedi al tuo registrar e leggi la data di scadenza e la carta dietro il rinnovo automatico. Una carta morta è il modo in cui il rinnovo automatico fallisce.",[471,478,479],{},"Metti entrambe le date nel calendario che leggi davvero, un mese prima di ciascuna.",[471,481,482],{},"Se un avviso è già visibile, leggi prima il codice sotto. Un errore di data chiede un certificato nuovo; un errore di autorità ne chiede uno diverso, e rinnovare non lo tocca.",[471,484,485],{},"Se un dominio è già scaduto, rinnovalo oggi. Ogni fase dopo questa costa più della precedente, e dopo il periodo di riscatto non sta più a te rinnovarlo.",[471,487,488],{},"Se sei ancora sul sottodominio del tuo builder, nessuno dei due è tuo per ora. Arrivano con il tuo dominio, lo stesso giorno.",[10,490,491,492,496],{},"Nessuno dei due è un errore che qualcuno ha fatto dentro la tua app, ed è per\nquesto che è così facile lasciarli fuori dalla lista. Mettili dentro. Se\npreferisci sistemare tutto in una volta, la\n",[51,493,495],{"href":494},"\u002Fchecklist","checklist di sicurezza in 10 minuti"," copre tutti e nove i controlli\nnell’ordine in cui vale la pena farli.",{"title":498,"searchDepth":499,"depth":499,"links":500},"",3,[501,503,504,505,506,507,508,509],{"id":31,"depth":502,"text":32},2,{"id":95,"depth":502,"text":96},{"id":111,"depth":502,"text":112},{"id":207,"depth":502,"text":208},{"id":243,"depth":502,"text":244},{"id":332,"depth":502,"text":333},{"id":362,"depth":502,"text":363},{"id":462,"depth":502,"text":463},"Basi della sicurezza","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcover-1200x630.png","Due schede alte, ciascuna con un sigillo in basso. Quella di sinistra è accesa nel colore d’accento, quella di destra sta nell’ombra con il colore spento.","Il tuo dominio è scaduto e il sito è offline. Il conto alla rovescia che parte, perché il certificato è il problema minore, e come controllarli entrambi.",false,"md",[517,519,521,524,526],{"q":32,"a":518},"Prima si spegne la tua app, e il nome resta recuperabile ancora per un po’. Per .com e gli altri domini generici il tuo registrar lo tiene rinnovabile al prezzo normale per una finestra che sceglie lui, e ICANN impone che il tuo DNS smetta di funzionare per almeno gli ultimi otto giorni di quella finestra. Dopo che il registrar lo cancella parte una Redemption Grace Period di 30 giorni, durante la quale solo tu puoi ripristinarlo, e solo tramite quel registrar, pagando. Poi circa cinque giorni di pending delete in cui nessuno può fare nulla, e a quel punto il nome è disponibile per il primo che lo chiede.",{"q":96,"a":520},"Sì, una volta che ha attraversato i periodi di riscatto e di pending delete ed è stato rilasciato. Da quel momento il nome si registra a chi arriva primo, e ci sono aziende il cui intero prodotto consiste nel chiedere un nome nel secondo in cui si libera. Tutto quello che puntava alla tua app punta ancora al nome: i preferiti, il link nella tua email di benvenuto, l’indirizzo nella scheda dello store. Puoi provare a ricomprarlo da chi lo ha preso, al prezzo che decide lui.",{"q":522,"a":523},"Perché il mio sito dice «non sicuro» oggi, se ieri andava tutto bene?","Sono due problemi diversi, e lo schermo ti dice quale hai. Una dicitura grigia nella barra degli indirizzi, con la tua pagina che si carica comunque sotto, significa che la pagina è arrivata in HTTP semplice e che non c’era alcun certificato in gioco. Un certificato scaduto o non attendibile non è una dicitura: sostituisce la tua app con un avviso a pagina intera che il visitatore deve attraversare cliccando.",{"q":244,"a":525},"Sul loro sottodominio è tutto loro e non c’è nulla da tenere d’occhio per te. Appena colleghi un dominio tuo, da lì in poi la registrazione è tua, mentre il certificato di solito continua a essere emesso e rinnovato da chi ospita l’app. È proprio questa divisione a rendere un rinnovo rotto così facile da mancare: nessuno ti dice che veniva fatto per te, e smette di essere fatto senza che un errore arrivi a nessuno.",{"q":527,"a":528},"Con quanto anticipo dovrei essere avvisato?","Un mese per ciascuno, perché è più o meno il punto in cui entrambi tornano risolvibili senza drammi. Un certificato standard si rinnova circa 30 giorni prima di scadere, quindi un certificato a cui restano meno di 30 giorni ti sta già dicendo che il rinnovo non ha funzionato. Per un dominio conviene prendere la data prima ancora che la registrazione scada, perché ogni fase successiva costa più della precedente.","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",[531,532,533,534,535,536,537,538],"dominio scaduto sito offline","certificato ssl scaduto","il mio sito dice non sicuro","controllare scadenza dominio","cosa succede quando scade un certificato","qualcuno può prendere il mio dominio","certificato https non si rinnova","rinnovare il dominio prima della scadenza",{},true,"\u002Fblog\u002Fdomain-and-certificate-expiry","2026-09-22",{"title":5,"description":513},"blog\u002Fdomain-and-certificate-expiry",[546,547,548,549],"Se il tuo dominio è scaduto e il sito è offline, è partito un conto alla rovescia. Per .com e la maggior parte dei domini generici sono qualche settimana al prezzo normale, poi 30 giorni per riprenderlo pagando una penale, poi circa cinque giorni in cui non si può fare più nulla.","Un certificato che scade fa rumore e lo puoi sostituire oggi. Un dominio rilasciato appartiene a chi lo registra dopo di te, insieme a ogni link che qualcuno abbia mai creato verso la tua app.","Sul dominio il registrar è tenuto ad avvisarti, e lo fa. Sul certificato non è tenuto ad avvisarti nessuno, e Let’s Encrypt ha smesso di mandare le proprie email di scadenza il 4 giugno 2025.","Su un sottodominio del builder nessuno dei due è tuo: la piattaforma possiede il nome e il certificato e rinnova entrambi. Diventano tuoi il giorno in cui colleghi un dominio tuo.","dyrymI4GeIS_7ZSijmRIIrRd1UvBMCMZHaP-bLndFWY",[552,558,564,570,576,582,588,594,600,606,612,618,624,631,637,643,648,654,660,666,667,673,679,685,691,697,703,709,715,721,727,733,739,745,751,757,763,769,775,781,787,793,799,805,811,817,823,829,835,841,847,853,859,865,870,876,882,888,893,899],{"path":553,"title":554,"description":555,"published":556,"category":510,"image":557,"draft":514},"\u002Fblog\u002Fbase44-security-scan","Scansione di sicurezza Base44: ciò che vede solo lei","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.","2026-10-10","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",{"path":559,"title":560,"description":561,"published":562,"category":510,"image":563,"draft":514},"\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":565,"title":566,"description":567,"published":568,"category":510,"image":569,"draft":514},"\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":571,"title":572,"description":573,"published":574,"category":510,"image":575,"draft":514},"\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":577,"title":578,"description":579,"published":580,"category":510,"image":581,"draft":514},"\u002Fblog\u002Fis-base44-safe","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":583,"title":584,"description":585,"published":586,"category":510,"image":587,"draft":514},"\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":589,"title":590,"description":591,"published":592,"category":510,"image":593,"draft":514},"\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":595,"title":596,"description":597,"published":598,"category":510,"image":599,"draft":514},"\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":601,"title":602,"description":603,"published":604,"category":510,"image":605,"draft":514},"\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":607,"title":608,"description":609,"published":610,"category":510,"image":611,"draft":514},"\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":613,"title":614,"description":615,"published":616,"category":510,"image":617,"draft":514},"\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":619,"title":620,"description":621,"published":622,"category":510,"image":623,"draft":514},"\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":625,"title":626,"description":627,"published":628,"category":629,"image":630,"draft":514},"\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":632,"title":633,"description":634,"published":635,"category":629,"image":636,"draft":514},"\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":638,"title":639,"description":640,"published":641,"category":629,"image":642,"draft":514},"\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":644,"title":645,"description":646,"published":641,"category":510,"image":647,"draft":514},"\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":649,"title":650,"description":651,"published":652,"category":510,"image":653,"draft":514},"\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":655,"title":656,"description":657,"published":658,"category":510,"image":659,"draft":514},"\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":661,"title":662,"description":663,"published":664,"category":629,"image":665,"draft":514},"\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":541,"title":5,"description":513,"published":542,"category":510,"image":529,"draft":514},{"path":668,"title":669,"description":670,"published":671,"category":510,"image":672,"draft":514},"\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":674,"title":675,"description":676,"published":677,"category":510,"image":678,"draft":514},"\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":680,"title":681,"description":682,"published":683,"category":510,"image":684,"draft":514},"\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":686,"title":687,"description":688,"published":689,"category":510,"image":690,"draft":514},"\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":692,"title":693,"description":694,"published":695,"category":510,"image":696,"draft":514},"\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":698,"title":699,"description":700,"published":701,"category":510,"image":702,"draft":514},"\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":704,"title":705,"description":706,"published":707,"category":510,"image":708,"draft":514},"\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":710,"title":711,"description":712,"published":713,"category":629,"image":714,"draft":514},"\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":716,"title":717,"description":718,"published":719,"category":629,"image":720,"draft":514},"\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":722,"title":723,"description":724,"published":725,"category":629,"image":726,"draft":514},"\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":728,"title":729,"description":730,"published":731,"category":510,"image":732,"draft":514},"\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":734,"title":735,"description":736,"published":737,"category":510,"image":738,"draft":514},"\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":740,"title":741,"description":742,"published":743,"category":510,"image":744,"draft":514},"\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":746,"title":747,"description":748,"published":749,"category":510,"image":750,"draft":514},"\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":752,"title":753,"description":754,"published":755,"category":510,"image":756,"draft":514},"\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":758,"title":759,"description":760,"published":761,"category":510,"image":762,"draft":514},"\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":764,"title":765,"description":766,"published":767,"category":510,"image":768,"draft":514},"\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":770,"title":771,"description":772,"published":773,"category":510,"image":774,"draft":514},"\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":776,"title":777,"description":778,"published":779,"category":510,"image":780,"draft":514},"\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":782,"title":783,"description":784,"published":785,"category":510,"image":786,"draft":514},"\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":788,"title":789,"description":790,"published":791,"category":629,"image":792,"draft":514},"\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":794,"title":795,"description":796,"published":797,"category":510,"image":798,"draft":514},"\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":800,"title":801,"description":802,"published":803,"category":629,"image":804,"draft":514},"\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":806,"title":807,"description":808,"published":809,"category":510,"image":810,"draft":514},"\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":812,"title":813,"description":814,"published":815,"category":510,"image":816,"draft":514},"\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":818,"title":819,"description":820,"published":821,"category":510,"image":822,"draft":514},"\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":824,"title":825,"description":826,"published":827,"category":510,"image":828,"draft":514},"\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":830,"title":831,"description":832,"published":833,"category":629,"image":834,"draft":514},"\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":836,"title":837,"description":838,"published":839,"category":629,"image":840,"draft":514},"\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":842,"title":843,"description":844,"published":845,"category":510,"image":846,"draft":514},"\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":848,"title":849,"description":850,"published":851,"category":510,"image":852,"draft":514},"\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":854,"title":855,"description":856,"published":857,"category":629,"image":858,"draft":514},"\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":860,"title":861,"description":862,"published":863,"category":510,"image":864,"draft":514},"\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":866,"title":867,"description":868,"published":863,"category":510,"image":869,"draft":514},"\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":871,"title":872,"description":873,"published":874,"category":510,"image":875,"draft":514},"\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":877,"title":878,"description":879,"published":880,"category":629,"image":881,"draft":514},"\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":883,"title":884,"description":885,"published":886,"category":510,"image":887,"draft":514},"\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":889,"title":890,"description":891,"published":886,"category":629,"image":892,"draft":514},"\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":894,"title":895,"description":896,"published":897,"category":629,"image":898,"draft":514},"\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":900,"title":901,"description":902,"published":897,"category":510,"image":903,"draft":514},"\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",1791618973732]