[{"data":1,"prerenderedAt":904},["ShallowReactive",2],{"blog-uk-domain-and-certificate-expiry":3,"blog-index-uk":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_uk\u002Fblog\u002Fdomain-and-certificate-expiry.md","Домен закінчився, сайт лежить: що буде далі",{"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",{},"У п’ятницю ваш застосунок працював. У понеділок там повноекранне попередження\nбраузера або взагалі нічого, і у вашому коді нічого не змінилося. Хтось\nнадсилає вам скріншот, і ви вбиваєте слова з нього в пошук: домен закінчився,\nсайт лежить.",[10,14,15],{},"Ось та частина, яку більшість порад на цю тему подає неправильно. Цей ранок\nможуть спричинити два різні збої, вони йдуть на двох різних годинниках, і той,\nщо звучить дешевше, і є серйозним. Прострочений сертифікат галасливий,\nнезручний і замінний сьогодні. Прострочений домен спершу тихий, і якщо лишити\nйого надовго, ваш застосунок не лежить. Він належить комусь іншому.",[10,17,18,19,23,24,27],{},"Між вашим застосунком і людьми, які ним користуються, стоять дві речі.\n",[20,21,22],"strong",{},"Домен"," це оренда крамниці: назва над дверима і право далі нею користуватися.\n",[20,25,26],{},"Сертифікат"," це ліцензія у вітрині, яка каже, що ця крамниця справді та сама,\nщо на вивісці. Ви орендуєте обидві. Обидві поновлюються в дату, яку ви виставили\nодного разу і відтоді не дивилися.",[29,30,32],"h2",{"id":31},"що-відбувається-коли-закінчується-мій-домен","Що відбувається, коли закінчується мій домен?",[10,34,35],{},"Ваш застосунок гасне, а потім починає йти годинник у три етапи.",[10,37,38,39,43],{},"Для ",[40,41,42],"code",{},".com"," та інших загальних доменів розклад задає ICANN, а не ваш реєстратор,\nтож він майже однаковий, де б ви не купували назву.",[10,45,46,49,50,57],{},[20,47,48],{},"Ще ваш, уже вимкнений."," Реєстратор тримає назву доступною для продовження за\nзвичайною ціною протягом вікна, яке обирає сам, зазвичай кілька тижнів.\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","\nвід ICANN вимагає, щоб він вимкнув ваш DNS у цей час: щонайменше останні вісім\nднів, поки назву ще можна продовжити, вона мусить перестати вести куди-небудь.\nТобто ваш застосунок гасне задовго до того, як назва кудись піде, і саме так\nвласник зазвичай і дізнається.",[10,59,60,63],{},[20,61,62],{},"Видалений і все ще поверненний."," Коли реєстратор остаточно видаляє\nреєстрацію, починається 30-денний Redemption Grace Period. ICANN вимагає його\nмайже від кожного загального реєстру. Повернути назву в цей період можете тільки\nви, тільки через того реєстратора, який її видалив, і ви платите плату за\nвідновлення понад вартість продовження. ICANN цю плату не встановлює, і вона\nзначно більша за продовження.",[10,65,66,69],{},[20,67,68],{},"Pending delete."," Близько п’яти днів, у які ні ви, ні ваш реєстратор нічого не\nзмінюєте. Потім назва звільняється.",[10,71,72],{},"Та сама політика каже, що реєстратор зобов’язаний вам написати: двічі до\nзакінчення реєстрації, приблизно за місяць і за тиждень, і ще раз протягом п’яти\nднів після. Тож якщо якийсь ваш домен колись закінчився без попередження,\nперевіряти треба не календар. А те, яка адреса стоїть у вашому обліковому записі\nв реєстратора.",[74,75],"diagram",{"alt":76,"caption":77,"src":78},"Горизонтальна смуга з чотирьох частин, з однією фігурою біля лівого краю. Перша частина суцільна; лінія позначає дату закінчення, після якої смуга стає заштрихованою. Друга лінія позначає видалення, після нього один відрізок бурштиновий із числом 30, а наступний червоний із числом 5. Далі смуга закінчується, за нею порожній пунктирний слот і ще три фігури.","Три етапи після того, як домен закінчився, для .com та інших загальних доменів. У перших двох назву ще можна повернути, після третього вона нічия.","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fthe-clock-after-expiry-1600x540.png",[10,80,81,82,85,86,85,89,92],{},"Країнні домени мають власні розклади. ",[40,83,84],{},".io",", ",[40,87,88],{},".co.uk",[40,90,91],{},".de"," та решта лишаються\nпоза цією політикою, і деякі з них значно менш поблажливі. Якщо ваш застосунок\nна такому, читайте сторінку життєвого циклу вашого реєстру, а не цей розділ.",[29,94,96],{"id":95},"чи-може-хтось-забрати-мій-домен-після-того-як-він-закінчився","Чи може хтось забрати мій домен після того, як він закінчився?",[10,98,99],{},"Так, щойно він звільниться, і саме це відрізняє цей випадок від усього іншого у\nзвіті про безпеку.",[10,101,102],{},"Кожен інший висновок це помилка в чомусь, що вам належить. Ви можете піти й\nвиправити її. Звільнений домен виходить із вашої власності повністю: назву\nзареєстровано на когось іншого, і все, що вело на ваш застосунок, тепер веде до\nцієї людини. Закладки. Посилання у вітальному листі. Адреса на візитівці, яку ви\nроздавали на конференції. Посилання для скидання пароля, яке ви надіслали\nминулого тижня.",[10,104,105],{},"Назви ще й розбирають швидко. Є компанії, чий увесь продукт полягає в тому, щоб\nзапитати домен у ту саму секунду, коли він звільняється, і тому назва з\nхоч якимось трафіком рідко лишається незареєстрованою надовго.",[10,107,108],{},"Спробувати викупити назву назад ви все одно можете. Тільки домовлятися\nдоведеться з тим, хто встиг першим, за ціною, яку він назве. Сертифікат, що\nзакінчився сьогодні вранці, можна замінити сьогодні вранці; домен, що\nзвільнився минулого місяця, може взагалі не продаватися.",[29,110,112],{"id":111},"чому-мій-сайт-пише-не-захищено-якщо-вчора-все-було-гаразд","Чому мій сайт пише «не захищено», якщо вчора все було гаразд?",[10,114,115],{},"Це можуть спричиняти дві різні речі, і яка саме у вас, написано на екрані.",[10,117,118,121],{},[20,119,120],{},"Напис в адресному рядку"," це браузер каже, що сторінка прийшла звичайним HTTP,\nі жодного сертифіката в цьому не було. Ваша сторінка під ним усе одно\nзавантажується. Нічого не закінчилося. Щось віддає ваш сайт без HTTPS, і це\nокрема проблема, не ця.",[10,123,124,127],{},[20,125,126],{},"Прострочений або недовірений сертифікат це не напис. Це стіна."," Ваш застосунок\nзамінюється цілою сторінкою: у Chrome тією, що каже, що з’єднання не є\nприватним, у Firefox попередженням про можливий ризик для безпеки. Щоб дістатися\nвашого сайту, треба знайти кнопку «Додатково» і пройти крізь попередження, яке\nназиває сайт небезпечним. Більшість відвідувачів цього не зробить.",[74,129],{"alt":130,"caption":131,"src":132},"Два вікна браузера. У першому сторінка показується нормально, а в адресному рядку сидить маленьке перекреслене коло. У другому сторінки немає взагалі: вікно заповнює непрозора панель зі знаком попередження та однією кнопкою.","Ліворуч сторінка все ще завантажується, і браузер її коментує. Праворуч сертифікат не спрацював, і коментувати вже нічого.","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fa-label-and-a-wall-1600x820.png",[10,134,135],{},"Прочитайте код під попередженням, перш ніж щось міняти, бо він каже, який саме\nремонт вам потрібен:",[137,138,139,155],"table",{},[140,141,142],"thead",{},[143,144,145,149,152],"tr",{},[146,147,148],"th",{},"Що друкує браузер",[146,150,151],{},"Що це означає",[146,153,154],{},"Що це лагодить",[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"," у Chrome, ",[40,168,169],{},"SEC_ERROR_EXPIRED_CERTIFICATE"," у Firefox",[161,172,173],{},"Сертифікат вийшов за свою кінцеву дату",[161,175,176],{},"Новий сертифікат",[143,178,179,185,188],{},[161,180,181,184],{},[40,182,183],{},"NET::ERR_CERT_AUTHORITY_INVALID"," у Chrome",[161,186,187],{},"Його не підписало ніщо, чому браузер довіряє, або ланку ланцюжка ніколи не встановили",[161,189,190],{},"Сертифікат від довіреного центру або та сама ланка. Продовження не дасть нічого",[143,192,193,196,199],{},[161,194,195],{},"Повідомлення про те, що годинник пристрою поспішає або відстає",[161,197,198],{},"Неправильна дата саме на пристрої відвідувача",[161,200,201],{},"Нічого з вашого боку",[10,203,204],{},"Останній рядок варто прочитати, перш ніж іти шукати щось у хостингу. Одна людина,\nяка скаржиться на попередження про сертифікат, може виявитися ноутбуком цієї\nлюдини.",[29,206,208],{"id":207},"чому-https-сертифікат-перестає-поновлюватися-і-при-цьому-нічого-не-ламається","Чому HTTPS-сертифікат перестає поновлюватися, і при цьому нічого не ламається",[10,210,211],{},"Бо поновлення має статися за місяць до того, як сертифікат почне важити, а\nневдале поновлення не змінює нічого, що ви могли б побачити.",[10,213,214,215,220],{},"Більшість застосунків, зроблених так, віддає хостинг, який бере сертифікати в\nLet’s Encrypt і поновлює їх за вас. Let’s Encrypt\n",[51,216,219],{"href":217,"rel":218},"https:\u002F\u002Fletsencrypt.org\u002Fdocs\u002Ffaq\u002F",[55],"видає 90-денні сертифікати і радить поновлювати кожні 60 днів",",\nтож процес, який тримає ваш сайт живим, має спрацьовувати, коли в запасі ще 30\nднів.",[10,222,223],{},"Щоб отримати новий, ваш хостинг мусить довести центру сертифікації, що досі\nконтролює вашу назву: або віддавши на вашому домені файл, який центр попросить,\nабо записавши запис у ваш DNS. Усе, що ламає цей доказ, ламає поновлення.\nПереїзд DNS до іншого провайдера. Проксі перед застосунком. Спрямувати назву\nкудись інде, щоб щось перевірити, і повернути назад. Додати CAA-запис, тобто\nзапис у DNS, який називає, яким центрам дозволено видавати сертифікати для\nвашого домену, і який мовчки забороняє кожен центр, що там не названий.",[10,225,226],{},"Нічого з цього не кладе ваш сайт. Сертифікат, який у вас уже є, продовжує\nпрацювати, тож застосунок стоїть і замочок на місці, поки поновлення знову\nпровалюється щодня протягом місяця, і ніхто на це не дивиться.",[74,228],{"alt":229,"caption":230,"src":231},"Дві доріжки одна над одною на спільній шкалі з позначками 0, 60 і 90. Верхня доріжка це поновлення: обведена рамка з галочкою всередині до дня 60, а далі шість хрестиків із проміжками до дня 90. Нижня доріжка це те, що бачать відвідувачі: суцільний акцентний колір по всій шкалі, який на дні 90 стає бурштиновим блоком.","Поновлення починає провалюватися на 60-му дні, а сайт має бездоганний вигляд до 90-го. Усе, що сказало б вам про це, лежить на верхній доріжці.","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fnothing-visible-for-30-days-1600x620.png",[10,233,234,235,240],{},"Лист, який раніше приходив, теж більше не приходить.\n",[51,236,239],{"href":237,"rel":238},"https:\u002F\u002Fletsencrypt.org\u002F2025\u002F06\u002F26\u002Fexpiration-notification-service-has-ended",[55],"Let’s Encrypt закрив свої листи-нагадування про закінчення 4 червня 2025 року",",\nоголосивши про це в січні того ж року: поновлення в більшості підписників уже\nавтоматизоване, а тримати мільйони поштових адрес прив’язаними до даних про\nвидачу було платою приватністю, яку вони воліли не нести. Обидві причини добрі.\nЦе все одно прибрало єдине повідомлення, яке доходило до людини, коли автоматика\nзупинялася.",[29,242,244],{"id":243},"чи-поновлюють-lovable-або-vercel-мій-сертифікат-за-мене","Чи поновлюють Lovable або Vercel мій сертифікат за мене?",[10,246,247],{},"Поки ваш застосунок на власному піддомені білдера, обидві дати належать їм, і в\nжодній із них ви не можете помилитися.",[10,249,250,251,254,255,258,259,262],{},"На ",[40,252,253],{},"вашзастосунок.lovable.app"," або на адресі ",[40,256,257],{},"vercel.app"," чи ",[40,260,261],{},"netlify.app","\nплатформа володіє назвою, поновлює реєстрацію, а також видає і поновлює\nсертифікат. Наша власна перевірка домену навіть не шукає таких. Вона повідомляє,\nщо застосунок на керованому домені платформи і що вам тут немає чого відстежувати.",[10,264,265],{},"Коли ви під’єднуєте власний домен, одне з двох переходить до вас напевно, а\nдруге іноді:",[137,267,268,281],{},[140,269,270],{},[143,271,272,275,278],{},[146,273,274],{},"Що",[146,276,277],{},"На піддомені білдера",[146,279,280],{},"На вашому власному домені",[156,282,283,294,305,316],{},[143,284,285,288,291],{},[161,286,287],{},"Кому належить назва",[161,289,290],{},"Платформі",[161,292,293],{},"Вам, через вашого реєстратора",[143,295,296,299,302],{},[161,297,298],{},"Хто поновлює реєстрацію",[161,300,301],{},"Платформа, автоматично",[161,303,304],{},"Ви, з картки",[143,306,307,310,313],{},[161,308,309],{},"Хто видає і поновлює сертифікат",[161,311,312],{},"Платформа",[161,314,315],{},"Зазвичай усе ще ваш хостинг, автоматично, для вашого домену",[143,317,318,321,324],{},[161,319,320],{},"Хто дізнається, коли це зламається",[161,322,323],{},"Нікому й не треба",[161,325,326],{},"Ви, якщо щось за цим стежить",[10,328,329],{},"Саме рядок про поновлення людей і дивує. У білдері про це ніщо не оголошує. Ви\nдодаєте домен, застосунок на ньому завантажується, і тепер у вас є запис у\nкалендарі, якого ви ніколи не робили.",[29,331,333],{"id":332},"як-перевірити-обидва-прямо-зараз","Як перевірити обидва прямо зараз?",[10,335,336],{},"Ззовні, не входячи нікуди.",[10,338,339,342],{},[20,340,341],{},"Сертифікат."," Відкрийте свій застосунок, натисніть на замочок в адресному\nрядку, відкрийте деталі сертифіката й прочитайте дату кінця дії. Для звичайного\n90-денного сертифіката більш ніж 30 днів попереду означає, що поновлення працює.\nМенш ніж 30 днів означає, що поновлення, яке мало б уже статися, не сталося.",[10,344,345,348],{},[20,346,347],{},"Домен."," Увійдіть до свого реєстратора і прочитайте три речі. Дату закінчення.\nЧи ще дійсна картка за автопродовженням, бо автопродовження з мертвою карткою це\nнайпоширеніший спосіб, у який це трапляється з тим, хто був упевнений, що з ним\nне трапиться. І поштову адресу в обліковому записі, бо саме туди піде кожне\nпопередження, яке вам належить.",[10,350,351,354,355,359],{},[20,352,353],{},"Обидва разом."," Наше безкоштовне сканування читає обидва ззовні, разом із\nсімома іншими перевірками, приблизно за 20 секунд і без облікового запису:\n",[51,356,358],{"href":357},"\u002Fsecurity-scanner","відскануйте свій застосунок",". Воно друкує дату кінця дії\nсертифіката і, для домену, який ви зареєстрували самі, дату реєстрації. На\nпіддомені білдера воно так і каже, замість вигадувати вам дату.",[29,361,363],{"id":362},"що-ми-знайшли-на-30-998-застосунках","Що ми знайшли на 30 998 застосунках",[10,365,366],{},"Обидва висновки рідкісні, і кожен із них належав тому, хто під’єднав власний\nдомен.",[10,368,369,370,374],{},"Між 12 і 14 серпня 2026 року ми прогнали ті самі дев’ять зовнішніх перевірок на\n30 998 живих застосунках, зроблених у Lovable, Bolt, v0, Replit і Base44. Серед\nзастосунків, від яких кожна перевірка отримала відповідь, 55 із 30 980 мали\nзакінчений домен або домен, що закінчується, і 32 із 30 851 мали закінчений,\nтакий, що закінчується, або недовірений сертифікат. Повні цифри є в\n",[51,371,373],{"href":372},"\u002Fresearch\u002Fvibe-coded-app-security-2026","нашому звіті зі сканування",".",[137,376,377,387],{},[140,378,379],{},[143,380,381,384],{},[146,382,383],{},"Висновок",[146,385,386],{},"Застосунків",[156,388,389,397,405,413,421],{},[143,390,391,394],{},[161,392,393],{},"Домен закінчується протягом 60 днів",[161,395,396],{},"54",[143,398,399,402],{},[161,400,401],{},"Домен уже закінчився",[161,403,404],{},"1",[143,406,407,410],{},[161,408,409],{},"Сертифікат закінчується протягом 30 днів",[161,411,412],{},"19",[143,414,415,418],{},[161,416,417],{},"Сертифікат уже закінчився",[161,419,420],{},"5",[143,422,423,426],{},[161,424,425],{},"Сертифікат, якому не довіряє жоден браузер",[161,427,428],{},"8",[10,430,431,432,435],{},"Це 87 застосунків, що схоже на похибку округлення, поки не спитати, хто вони\nбули. 1 090 сканувань у тому заході припали на застосунок, власник якого сам\nзареєстрував домен. ",[20,433,434],{},"Усі 87 були в цій групі",", і жоден застосунок на піддомені\nбілдера не ніс жодного з двох висновків. Серед застосунків, які взагалі можуть\nмати цю проблему, це приблизно один із дванадцяти.",[10,437,438],{},"Більша частина того стовпчика це попередження, а не аварія, і саме це корисно:\nу когось іще був час. П’ять доменів були в межах семи днів, а один уже пішов.\nТринадцять застосунків у момент, коли ми дивилися, показували кожному\nвідвідувачу попередження браузера: п’ять із простроченим сертифікатом і вісім із\nтаким, якому не довіряє ніщо.",[10,440,441],{},"В обох випадках дата минає, поки ніхто не дивиться, і це саме той тип проблеми,\nз яким справді добре дає раду щось, що перевіряє щогодини.",[10,443,444,448,449,452],{},[51,445,447],{"href":446},"\u002Fpricing","Reeve Monitor"," прокручує всі дев’ять перевірок щогодини на трьох\nзастосунках, стежить за доступністю кожні 60 секунд і надсилає місячний звіт.\nДля цих двох висновків він робить те, чого не робить більше ні для чого: пише\nвам, що сертифікат або реєстрація добігають кінця, ",[20,450,451],{},"навіть коли ваша оцінка не\nзмінилася",". Monitor коштує $12 на місяць за прайсом, із сімома безкоштовними\nднями до першого списання, і сторінка з цінами інколи нижча за цифру тут і ніколи\nне вища.",[10,454,455,456,374],{},"Monitor стежить і більше нічого. Якщо ви хочете ще й копію своєї бази даних у\nмісці, куди ваш білдер не дістане,\n",[51,457,459],{"href":458},"\u002Fsupabase-backups","це Care, і він покриває Supabase",[29,461,463],{"id":462},"що-зробити-просто-зараз","Що зробити просто зараз",[465,466,467],"key-takeaways",{},[468,469,470,474,477,480,483,486],"ul",{},[471,472,473],"li",{},"Прочитайте дату кінця дії сертифіката через замочок в адресному рядку. Більш ніж 30 днів попереду означає, що поновлення працює.",[471,475,476],{},"Увійдіть до реєстратора і прочитайте дату закінчення та картку за автопродовженням. Мертва картка це те, на чому автопродовження й ламається.",[471,478,479],{},"Поставте обидві дати в календар, який ви справді читаєте, за місяць до кожної.",[471,481,482],{},"Якщо попередження вже видно, спершу прочитайте код під ним. Помилка дати вимагає нового сертифіката; помилка центру сертифікації вимагає іншого, і продовження тут не допоможе.",[471,484,485],{},"Якщо домен уже закінчився, продовжіть його сьогодні. Кожен наступний етап коштує дорожче за попередній, а після періоду викупу продовжувати його вже не вам.",[471,487,488],{},"Якщо ви ще на піддомені свого білдера, жодне з двох поки не ваше. Вони приходять разом із вашим доменом, того самого дня.",[10,490,491,492,496],{},"Жодне з двох не є помилкою, яку хтось зробив у вашому застосунку, і саме тому їх\nтак легко не внести до списку. Внесіть. Якщо ви радше пройшли б усе за один раз,\n",[51,493,495],{"href":494},"\u002Fchecklist","10-хвилинний чекліст безпеки"," охоплює всі дев’ять перевірок у тому\nпорядку, в якому їх варто робити.",{"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},"Основи безпеки","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcover-1200x630.png","Дві високі картки-документи, кожна з печаткою внизу. Ліва світиться акцентним кольором, права стоїть у тіні й знебарвлена.","Ваш домен закінчився і сайт лежить. Ось який годинник уже пішов, чому прострочений сертифікат це менша з двох бід, і як перевірити обидва.",false,"md",[517,519,521,524,526],{"q":32,"a":518},"Спершу гасне ваш застосунок, а назву ще певний час можна повернути. Для .com та інших загальних доменів реєстратор тримає її доступною для продовження за звичайною ціною протягом вікна, яке обирає сам, і ICANN вимагає, щоб ваш DNS перестав працювати щонайменше останні вісім днів цього вікна. Після того як реєстратор видалить запис, починається 30-денний Redemption Grace Period, протягом якого відновити назву можете тільки ви і тільки через того реєстратора, за окрему плату. Далі близько п’яти днів pending delete, коли ніхто не може зробити нічого, і потім назва стає доступною для наступного охочого.",{"q":96,"a":520},"Так, щойно він пройде періоди викупу та pending delete і звільниться. Далі назву реєструє той, хто перший встиг, і є компанії, чий увесь продукт полягає в тому, щоб запитати назву в ту саму секунду, коли вона звільняється. Усе, що вело на ваш застосунок, і далі веде на цю назву: закладки, посилання у вітальному листі, адреса у вашій картці в магазині застосунків. Ви можете спробувати викупити назву назад у того, хто її взяв, за ціною, яку він сам призначить.",{"q":522,"a":523},"Чому мій сайт сьогодні пише «не захищено», якщо вчора все було гаразд?","Це дві різні проблеми, і екран каже, яка саме у вас. Сірий напис в адресному рядку, під яким сторінка все одно завантажується, означає, що сторінка прийшла звичайним HTTP і жодного сертифіката в цьому не було. Прострочений або недовірений сертифікат це не напис: він замінює ваш застосунок повноекранним попередженням, крізь яке відвідувач мусить пройти вручну.",{"q":244,"a":525},"На власному піддомені їм належить усе, і вам немає чого відстежувати. Щойно ви під’єднуєте власний домен, реєстрація відтоді ваша, а сертифікат зазвичай і далі випускає та поновлює той, хто хостить застосунок. Саме цей поділ робить зламане поновлення таким непомітним: ніхто не каже вам, що це робили за вас, і воно перестає робитися без помилки, яка комусь надійде.",{"q":527,"a":528},"За скільки наперед мене має щось попередити?","За місяць для кожного, бо приблизно тоді обидва ще можна полагодити без драми. Звичайний сертифікат поновлюється приблизно за 30 днів до закінчення, тож сертифікат, якому лишилося менше ніж 30 днів, уже каже вам, що поновлення не спрацювало. Домен варто спіймати ще до того, як реєстрація взагалі закінчиться, бо кожен наступний етап коштує дорожче за попередній.","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",[531,532,533,534,535,536,537,538],"домен закінчився сайт не працює","ssl сертифікат прострочений","сайт пише не захищено","перевірити дату закінчення домену","що буде коли закінчиться сертифікат","чи може хтось забрати мій домен","https сертифікат не поновлюється","продовжити домен до закінчення",{},true,"\u002Fblog\u002Fdomain-and-certificate-expiry","2026-09-22",{"title":5,"description":513},"blog\u002Fdomain-and-certificate-expiry",[546,547,548,549],"Якщо ваш домен закінчився і сайт лежить, годинник уже пішов. Для .com і більшості загальних доменів це кілька тижнів за звичайною ціною, потім 30 днів на викуп за окрему плату, потім близько п’яти днів, коли не можна зробити вже нічого.","Прострочений сертифікат галасливий, і ви можете замінити його сьогодні. Звільнений домен належить тому, хто зареєструє його наступним, разом із кожним посиланням, яке будь-хто колись зробив на ваш застосунок.","Про домен реєстратор зобов’язаний вас попередити, і попереджає. Про сертифікат вас не зобов’язаний попереджати ніхто, а Let’s Encrypt припинив надсилати власні листи про закінчення 4 червня 2025 року.","На піддомені білдера жодне з двох не ваше: платформа володіє і назвою, і сертифікатом та поновлює обидва. Вашими вони стають того дня, коли ви під’єднуєте власний домен.","YcZA5GW0zMIFwo6M9NLXIDOoWkTgdIPeLliy0zH7CoA",[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","Сканування безпеки Base44: те, що бачить лише воно","Сканування безпеки Base44 перевіряє сім видів проблем зсередини. Ось половина, яку читає тільки воно, і половина, на яку воно ніколи не дивиться.","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","Ваш API-ключ витік. Порядок дій","API-ключ витік, і ви не знаєте, що робити першим. Не кожен ключ у вашому фронтенді є витоком, а порядок важить більше за швидкість.","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\" без вимкнення RLS","\"Infinite recursion detected in policy for relation\" означає, що ваша policy запитала таблицю, яку вона захищає. Ось як розірвати коло.","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\" у Supabase, і хибне виправлення","\"No API key found in request\" означає, що запит дійшов до Supabase без ключа. Більшість відповідей натомість вказують на правила вашої бази.","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? Дані 5 442 застосунків","Чи безпечний Base44? Ми прогнали дев’ять перевірок на 5 442 робочих застосунках Base44. Майже всі отримали B з причин, яких власник ніколи не обирав.","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","Сховати ключ API: перенесіть його в Supabase Edge Function","Сховати ключ API означає прибрати його з браузера, а Supabase Edge Function це найменше місце, куди його покласти. Два кроки поруч важать більше.","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","Чи відкритий ваш файл .env? Дванадцять шляхів для перевірки","Чи відкритий ваш файл .env на вашому власному вебсервері? Дванадцять адрес скажуть це за хвилину, а влучання означає, що все в ньому вже публічне.","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","Безпека v0: усі 1 790 просканованих застосунків v0 отримали A","Безпека v0 на 1 790 живих застосунках v0: усі отримали A. Лише 17 згадували базу даних, і саме це здебільшого вимірює оцінка 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? Що показали 1 123 застосунки Bolt","Чи безпечний Bolt? Ми прогнали 1 123 живі застосунки Bolt через дев’ять перевірок. Хостинг був чистим. Знахідки: ключі й відкриті таблиці в самих застосунках.","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 не працює чи проблема у вашому застосунку? Як розрізнити","Supabase не працює чи зламався ваш застосунок? Пауза, повна база й ваша власна помилка виглядають однаково. Чотири перевірки їх розрізняють.","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 мої дані? Так. Ось від чого це захищає","Чи шифрує Supabase дані? Так: AES-256 у стані спокою, TLS під час передавання, SOC 2 та ISO 27001. Що покриває кожне і який витік не зупиняє жодне.","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 і що стається на кожному","Ліміти безкоштовного тарифу Supabase: 500 МБ бази, 5 ГБ egress і жодних резервних копій. Що стається на кожній межі і що змінює Pro за $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","Перевірте резервну копію Supabase до того, як вона знадобиться","Як перевірити резервну копію Supabase: відновити в тестовий проєкт, порахувати рядки, увійти й знайти рядок, якого бракує обрізаному файлу.","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","Безкоштовна резервна копія Supabase через GitHub Action і підступ","Резервна копія Supabase через GitHub Action безкоштовна й годиться багатьом застосункам. Робочий процес, потрібний рядок підключення та egress.","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","Чому ви не можете завантажити резервну копію Supabase","Завантажити резервну копію Supabase на сучасному проєкті не вийде: щоденна копія там фізична. Як це перевірити і як тримати власну копію.","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\": бракує GRANT","З 30 жовтня нова таблиця в Supabase відповідає \"permission denied for table\", доки ви не дасте доступ. Лист показує лише половину виправлення.","\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","Чи є відкритий API-ендпоінт проблемою безпеки? Читайте JSON","Ваше сканування позначило відкритий API-ендпоінт. Чи це важливо, залежить від того, що повернулося, і більшість знайдених належали платформі.","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","Сканування безпеки Lovable: чого воно не доведе","Сканування безпеки Lovable: що перевіряють Quick scan і Deep scan, коли запускається кожне, і єдине, чого не доведе жодне сканування зсередини.","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","Чому у вашому дампі Supabase немає користувачів","Запустіть supabase db dump окремо і отримаєте форму вашої бази та жодного її рядка, без схеми auth, у якій живуть ваші користувачі.","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? Що показали 18 554 застосунки Lovable","Чи безпечний Lovable? Ми прогнали 18 554 живі застосунки Lovable через дев’ять перевірок. Платформа виявилася найчистішою з п’яти. Знахідки були в застосунках.","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","Чек-лист безпеки для vibe coding, у девʼяти перевірках","Чек-лист безпеки для vibe coding із девʼяти пунктів, кожен з яких будь-хто може перевірити у вашому живому застосунку ззовні, і кожен має тест на один рядок.","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","Секретний ключ Stripe у фронтенді може рухати гроші","Секретний ключ Stripe, відкритий у вашому фронтенді, може повертати кошти, списувати й читати кожну картку клієнта. А ключ pk_live_ там і має бути.","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","Змінні оточення Vite відкриті: префікс означає опублікувати це","Змінні оточення Vite відкриті у вашому застосунку, бо так просив префікс. VITE_ і NEXT_PUBLIC_ означають опублікувати це, а ШІ, який їх додав, не знав ціни.","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","Безпека Base44: що позначає скан і що з цього виправляти вам","Безпека Base44 на 5 438 просканованих застосунках: три знахідки майже на кожному належать платформі, source map є бейджем Base44, а ваша частина коротка.","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? Редактор, код і опублікований застосунок","Чи безпечний Cursor AI? Три запитання в одному пошуку: що Cursor зберігає, у чому помиляється його код і чи відкритий застосунок, який ви опублікували.","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? Що ми знайшли в 3 042 живих застосунках Replit","Чи безпечний Replit? Ми прогнали 3 042 живі застосунки Replit через дев’ять зовнішніх перевірок. Знахідки були в опублікованому застосунку, а не в хостингу.","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: у копії бази даних немає жодного файлу","Supabase storage backup це окрема робота. Копії бази даних зберігають список ваших файлів і жодного з них, тож після відновлення кожне завантаження зламане.","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 у Supabase: ціна та межі","Point-in-time recovery у Supabase відмотує базу на будь-яку секунду за останній тиждень. Коштує $100 на місяць понад Pro і покриває лише базу даних.","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","Проєкт Supabase на паузі? Ваші дані нікуди не зникли","Supabase поставив ваш проєкт на паузу після тижня без активності. Нічого не видалено, кнопка Restore стоїть поруч із назвою, і у вас є рік, щоб натиснути.","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","Який білдер застосунків з ШІ найбезпечніший? 30 998 тестів","Який білдер застосунків з ШІ найбезпечніший? Ми просканували 30 998 живих застосунків з Lovable, Base44, Replit, v0 і Bolt. Оцінку вирішує не білдер.","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","Увімкніть Row Level Security на кожній таблиці Supabase і перевірте","Row Level Security у Supabase без політики закриває таблицю повністю. Політика без увімкненого перемикача не робить нічого. Ось SQL, і ось перевірка.","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\": чого не бачить попередження","Supabase позначає \"RLS disabled in public\" як помилку. Про політику читання, яка лишає вашу таблицю так само відкритою, він не каже нічого.","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","Як замінити злитий ключ service_role у Supabase","Supabase каже спершу закрити витік. Інші посібники кажуть міняти негайно. Що правильно, залежить від того, куди саме потрапив ваш ключ 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","Сканери безпеки для vibe coding у порівнянні, наш теж","Найкращий сканер безпеки для vibe coding залежить від трьох питань, на які не відповідає жоден перелік функцій. Десять інструментів і ціни.","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: п’ять перевірок, які зробите самі","Supabase security checker читає ваш опублікований застосунок, а не налаштування проєкту. Ось п’ять перевірок і як виконати кожну самостійно.","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","Сканер безпеки для vibe coding: чого не бачить скан URL","Сканер безпеки для vibe coding читає ваш робочий застосунок ззовні. Що це охоплює, чотири речі, яких він не бачить, і як читати результат.","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","Відсутні заголовки безпеки: коли це справді важливо","Відсутні заголовки безпеки трапляються в наших звітах найчастіше. Від чого вони захищають і коли це найменш терміновий рядок вашого звіту.","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","Ваш ключ API OpenAI відкритий у фронтенді. Замініть його.","Ключ API OpenAI, відкритий у фронтенді, не можна прив'язати до домену. Замініть його сьогодні, перенесіть виклик на свій сервер і обмежте витрати.","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","Ключ API у фронтенді: що насправді віддають 30 998 застосунків","Ключ API, відкритий у вашому фронтенді, зазвичай є ключем Google Maps. Ми просканували 30 998 vibe-coded застосунків і порахували, що витікає насправді.","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","Інструменти резервного копіювання Supabase, і наш серед них","Чотири види інструментів резервного копіювання Supabase, що копіює кожен і коли безкоштовна GitHub Action виграє в будь-якої оплати, нашої теж.","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","Як користуватися секретами в Replit і що все одно публікується","Як користуватися секретами в Replit: додати, прочитати і усунути дві причини undefined. А ще ключі, які цей інструмент не здатен зберегти в таємниці.","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","Резервні копії на безкоштовному тарифі Supabase без терміналу","На безкоштовному тарифі Supabase резервних копій немає: копію робите ви. Як зробити її з панелі та що втрачає шлях через 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? Так. Ваш проєкт це інше питання","Чи безпечний Supabase? Платформа проходить аудити, шифрує дані й тримає пентести. Їхня документація каже, де це закінчується і починаються ваші налаштування.","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","Де знайти API-ключі Supabase: anon, service_role і URL","URL проєкту, ключ anon і ключ service_role лежать на одній сторінці панелі. Ось де вона, і яке з чотирьох значень має бути у вашому застосунку.","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 в Supabase. Що далі?","\"New row violates row-level security policy\" означає, що Supabase відмовив у записі. Швидке виправлення знову відкриває таблицю для всіх.","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","Чи є вайлдкард CORS ризиком для безпеки? Майже ніколи.","Чи є вайлдкард CORS ризиком для безпеки? Зазвичай це типове налаштування вашого білдера, і воно не видає нічого, що ваш сервер і так віддавав кожному.","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","Branching у Supabase це не бекап. Він іде тільки вперед.","Чому branching у Supabase це не бекап: гілка стартує без ваших даних, а мердж переносить саму лише схему. Для чого він потрібен і що брати замість нього.","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","Як відновити резервну копію Supabase, і що ламається потім","Як відновити резервну копію Supabase з панелі або з файлу дампа, що саме замінює відновлення і чому ваш застосунок може лишитися зламаним після нього.","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","Ваш бакет Supabase Storage публічний. Чи це проблема?","Публічний бакет Supabase Storage означає, що той, хто має URL файлу, може його відкрити. Він не означає, що хтось може переглянути список вмісту.","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","Чи є проблемою ключ API Google у вашому браузері?","Ключ API Google у відкритому коді сторінки наш сканер знаходить найчастіше, і зазвичай усе гаразд. Вирішує це одне безкоштовне налаштування.","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","ШІ-агент видалив мої дані в Supabase. Що можна відновити?","ШІ-агент видалив дані з вашої бази. Те, що ви зможете відновити, вирішилося раніше, а наступні хвилини вирішують, скільки з цього вціліє.","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","Чи може будь-хто прочитати вашу базу Supabase? 3 680 застосунків","Чи може будь-хто прочитати вашу базу даних Supabase без входу? Ми просканували 30 998 живих застосунків, зроблених ШІ-білдерами, і виміряли, як часто так.","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 maps: ваш застосунок публікує свій вихідний код","Відкрита source map дає будь-кому прочитати оригінальний код вашого застосунку, разом із коментарями. Перевірка за 30 секунд, і що важить насправді.","\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","Нові API-ключі Supabase: який із них безпечний у застосунку?","Supabase замінив anon і service_role публічними та секретними ключами. Який із них має бути у вашому застосунку, а який не має бути ніколи?","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 резервні копії моєї бази? Залежить від тарифу.","Чи робить Supabase резервні копії вашої бази даних? На платних тарифах щодня, на безкоштовному жодної. Як дізнатися, що у вас насправді є.","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 увімкнено. Таблиця досі публічна.","Увімкнути Supabase Row Level Security не означає захистити таблицю. Захищають політики, а та, що полагодила застосунок, часто впускає всіх.","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","Історія версій не є резервною копією. Вона не поверне таблицю.","Lovable і Bolt ведуть історію версій вашого коду. Ваша база даних працює як окремий сервіс, тож відкат назад не поверне ваші дані.","\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","Три способи зробити резервну копію бази Supabase, і чого бракує","Панель, pg_dump і керований сервіс. Що насправді зберігає кожен спосіб, що тихо лишає осторонь і який із них переживе втрату акаунта.","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","Які API-ключі безпечні у браузері, а які ні","Ваш ключ anon у Supabase створений, щоб бути публічним. Ключ service_role для цього не створений, і він ігнорує всі правила, які ви задали. Як їх розрізнити.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1791618974053]