[{"data":1,"prerenderedAt":990},["ShallowReactive",2],{"blog-uk-does-supabase-encrypt-my-data":3,"blog-index-uk":635},{"id":4,"title":5,"body":6,"category":590,"cover":591,"coverAlt":592,"description":593,"draft":594,"extension":595,"faq":596,"image":612,"keywords":613,"meta":624,"navigation":625,"ogTitle":26,"path":626,"published":627,"seo":628,"stem":629,"tldr":630,"updated":627,"__hash__":634},"blog_uk\u002Fblog\u002Fdoes-supabase-encrypt-my-data.md","Чи шифрує Supabase мої дані? Так. Ось від чого це захищає",{"type":7,"value":8,"toc":573},"minimark",[9,13,16,19,22,27,38,45,61,79,144,148,151,154,157,160,166,170,173,176,193,197,200,209,215,224,236,240,243,246,250,259,262,266,269,272,281,300,303,307,310,319,328,332,335,449,452,456,459,470,483,488,491,495,500,536,543,547,567],[10,11,12],"p",{},"Клієнт пише вам і питає, чи зашифровані його дані. Або більший замовник\nнадсилає анкету з безпеки у вигляді таблиці, і в ній ті рядки, які є в кожній\nтакій анкеті: шифрування у стані спокою, шифрування під час передавання, звіт\nSOC 2 вашого хостинг-провайдера. Ваш застосунок працює на Supabase, бо Lovable\nчи Bolt так його налаштували, і досі нікому не було потрібно, щоб ви знали, що\nвсе це означає.",[10,14,15],{},"То чи шифрує Supabase ваші дані? Так. Усі, на кожному тарифі, і сертифікати за\nцим твердженням справжні.",[10,17,18],{},"Більшість відповідей помиляється в тому, що зупиняється тут, наче шифрування\nвирішує, хто може читати ваші дані. Воно вирішує щось вужче. Уявіть Supabase як\nбанк. Шифрування у стані спокою це сховище, шифрування під час передавання це\nінкасаторська машина, а SOC 2 це інспектор, який перевіряє, що обидва працюють\nтак, як каже банк. Кожне з них стосується когось, хто взагалі не мав потрапити\nвсередину. Правило біля віконця каси, чию виписку клієнт може попросити, це\nокрема річ, і пишеться воно у вашому проєкті.",[10,20,21],{},"Кожну цифру нижче взято зі сторінок і документації Supabase 29 вересня 2026\nроку.",[23,24,26],"h2",{"id":25},"чи-шифрує-supabase-мої-дані","Чи шифрує Supabase мої дані?",[10,28,29,30,37],{},"Так. ",[31,32,36],"a",{"href":33,"rel":34},"https:\u002F\u002Fsupabase.com\u002Fsecurity",[35],"nofollow","Сторінка безпеки"," Supabase каже, що всі\nдані клієнтів зашифровані у стані спокою через AES-256 і під час передавання\nчерез TLS, і вам нічого не треба вмикати.",[10,39,40,44],{},[41,42,43],"strong",{},"У стані спокою"," означає на дисках. Ваша база даних записується на сховище в\nзашифрованому вигляді, тож копія диска, винесена з машин Supabase, сама по собі\nнечитабельна.",[10,46,47,50,51,56,57,60],{},[41,48,49],{},"Під час передавання"," означає на шляху між вашим відвідувачем і Supabase. Ваш\nзастосунок говорить із Supabase через його веб-API, для даних, входу й файлів,\nі\n",[31,52,55],{"href":53,"rel":54},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fssl-enforcement",[35],"посібник з обов’язкового SSL","\nSupabase каже, що кожен із цих API відхиляє незашифроване з’єднання. Виняток\nстановить пряме з’єднання з базою Postgres під ними, яке може відкрити\nінструмент резервного копіювання чи ваш власний сервер. Такі з’єднання\nприймаються без шифрування, доки ви не ввімкнете\n",[41,58,59],{},"Enforce SSL on incoming connections"," у Database Settings. Браузери ваших\nвідвідувачів таких з’єднань ніколи не відкривають.",[10,62,63,66,67,72,73,78],{},[41,64,65],{},"Шифрування стовпців"," це єдиний шар, який лишається вимкненим. Воно тримає\nокреме значення, скажімо номер телефону, нечитабельним навіть усередині бази.\nSupabase колись документував спосіб це робити, а його\n",[31,68,71],{"href":69,"rel":70},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fdatabase\u002Fextensions\u002Fpgsodium",[35],"сторінка про pgsodium","\nтепер радить цю функцію не використовувати через її операційну складність і\nризик неправильно її налаштувати, і додає, що шифрування у стані спокою,\nймовірно, достатнє для SOC 2 та HIPAA. Для секретів на кшталт API-ключа\nстороннього сервісу є ",[31,74,77],{"href":75,"rel":76},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fdatabase\u002Fvault",[35],"Vault",",\nякий зберігає їх зашифрованими і віддає через view.",[80,81,82,98],"table",{},[83,84,85],"thead",{},[86,87,88,92,95],"tr",{},[89,90,91],"th",{},"Шар",[89,93,94],{},"Увімкнено за замовчуванням",[89,96,97],{},"Від чого захищає",[99,100,101,113,124,134],"tbody",{},[86,102,103,107,110],{},[104,105,106],"td",{},"У стані спокою, AES-256",[104,108,109],{},"Так, на кожному тарифі",[104,111,112],{},"Копія диска, прочитана в обхід Supabase",[86,114,115,118,121],{},[104,116,117],{},"Під час передавання, TLS",[104,119,120],{},"Так на кожному API. На прямому Postgres, коли ви зробите SSL обов’язковим",[104,122,123],{},"Хтось, хто читає трафік між застосунком і Supabase",[86,125,126,128,131],{},[104,127,65],{},[104,129,130],{},"Ні, і Supabase радить відмовитися від колишньої функції",[104,132,133],{},"Окреме значення, прочитане тим, хто може робити запити до таблиці",[86,135,136,138,141],{},[104,137,77],{},[104,139,140],{},"Для кожного секрету, який ви туди кладете",[104,142,143],{},"Секрет, що лежить читабельним на диску чи в резервній копії",[23,145,147],{"id":146},"від-чого-захищає-шифрування-supabase","Від чого захищає шифрування Supabase?",[10,149,150],{},"Від будь-кого, хто дістається до ваших даних, не питаючи їх у бази. Той, хто\nвиносить диск, копіює файл резервної копії чи підслуховує трафік між браузером\nі Supabase, отримує перемішані байти і більше нічого.",[10,152,153],{},"Запит, на який база вирішує відповісти, це інша справа. Шифрування у стані\nспокою працює під Postgres, тож база читає власні файли у відкритому вигляді,\nдля кожного запиту, який обслуговує. Які запити вона обслуговує, визначають\nдозволи на кожній таблиці. У Supabase це Row Level Security, правило, яке\nкаже, які рядки кожен відвідувач може читати, і на кожній таблиці його треба\nввімкнути й написати для неї правило.",[10,155,156],{},"Це і є віконце каси в банку. Сховище відчиняється для касира щоразу, бо касир\nпрацює на банк. Якщо ніхто не записав, чиї виписки клієнт може бачити, касир\nвидає все, що попросять, а інкасаторська машина доставляє це, опломбованим усю\nдорогу, тому, хто попросив.",[10,158,159],{},"Документація Supabase каже те саме про Vault, який справді шифрує значення\nвсередині бази: \"будь-хто, хто має доступ до view, має доступ до розшифрованих\nсекретів.\"",[161,162],"diagram",{"alt":163,"caption":164,"src":165},"Три шляхи з тієї самої бази даних із замком. Винесений диск і дріт із замком віддають лупі лише перемішані блоки. Браузер, що надсилає запит із ключем anon, отримує рядки через канал із замком, і вони приходять читабельними.","Шифрування зупиняє перші два шляхи. Третій це питання, на яке база відповідає, і щоб відповісти, вона розшифровує.","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fwhat-encryption-stops-1600x720.png",[23,167,169],{"id":168},"чи-заважає-шифрування-незнайомцю-читати-мої-таблиці","Чи заважає шифрування незнайомцю читати мої таблиці?",[10,171,172],{},"Ні, і ми виміряли, як часто це має значення. У серпні 2026 року ми просканували\n30 998 опублікованих застосунків, зроблених у Lovable, Base44, Replit, v0 та\nBolt. У 3 680 із них ми змогли завершити перевірку, яка питає базу Supabase без\nвходу, чи віддасть таблиця свої рядки. У 2 096, тобто 57 %, щонайменше одна\nтаблиця віддавала, і 394 з них мали відкриту таблицю з назвою про людей: users,\nprofiles, customers, orders.",[10,174,175],{},"Кожна з цих баз увесь час була зашифрована у стані спокою, за власним описом\nтого, як працює платформа, і будь-який незнайомець, що попросив би, отримав би\nрядки через TLS. У шифруванні нічого не зламалося, і воно ніяк не брало участі\nу вирішенні, хто отримає відповідь.",[10,177,178,179,183,184,187,188,192],{},"Сам запит звичайний. Це той самий, який робить ваш застосунок, щоб показати\nклієнту, що увійшов, його замовлення, тільки без входу: публічний ключ, якому\nі місце у вашій сторінці, і ",[180,181,182],"code",{},"GET"," на ",[180,185,186],{},"\u002Frest\u002Fv1\u002F"," з назвою таблиці в кінці. Наш\nскан прочитав, скільки рядків повернула б кожна таблиця, і на цьому\nзупинився, не забравши жодного.\n",[31,189,191],{"href":190},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","Повне вимірювання"," пояснює, від\nчого ці 57 % є часткою і скільки ми не змогли побачити.",[23,194,196],{"id":195},"чи-відповідає-supabase-soc-2","Чи відповідає Supabase SOC 2?",[10,198,199],{},"Так. Supabase має звіт SOC 2 Type 2 від незалежного аудитора, що оновлюється\nщороку.",[10,201,202,203,208],{},"Звіт SOC 2 це опис аудитора, чи працювали засоби контролю безпеки компанії\nтак, як компанія каже. Type 2 означає, що їх перевіряли протягом цілого\nперіоду, і в Supabase він триває з 1 березня по 28 лютого. Він охоплює безпеку,\nдоступність, цілісність обробки, конфіденційність і приватність, у базі даних,\nStorage, Auth, Realtime, Edge Functions і Data API, а\n",[31,204,207],{"href":205,"rel":206},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fsecurity\u002Fsoc-2-compliance",[35],"сторінка SOC 2","\nSupabase позначає, де він закінчується:",[210,211,212],"blockquote",{},[10,213,214],{},"Відповідність Supabase SOC 2 не переноситься на середовища поза продуктом\nSupabase або поза контролем Supabase.",[10,216,217,218,223],{},"У банку це звіт інспектора про сховище і машини. Правила ваших таблиць лишаються\nпоза ним, бо пишете їх ви:\n",[31,219,222],{"href":220,"rel":221},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fdeployment\u002Fshared-responsibility-model",[35],"модель спільної відповідальності","\nSupabase відносить керування доступом і застосування засобів контролю безпеки\nдо того, за що клієнт відповідає завжди.",[10,225,226,227,230,231,235],{},"З цього випливають ще дві речі. Якщо клієнту потрібно, щоб ",[41,228,229],{},"ваша"," компанія\nвідповідала SOC 2, сторінка SOC 2 від Supabase каже, що клієнт у такому\nстановищі мусить сам запровадити засоби контролю і пройти власний аудит. А те,\nчи Supabase взагалі надійна платформа, щоб на ній будувати, це\n",[31,232,234],{"href":233},"\u002Fblog\u002Fis-supabase-secure","окреме питання з окремою статтею",".",[23,237,239],{"id":238},"як-отримати-звіт-soc-2-від-supabase","Як отримати звіт SOC 2 від Supabase?",[10,241,242],{},"З панелі вашої організації, на тарифі Team і вище. Він лежить у розділі Legal\nDocuments, поруч із сертифікатом ISO 27001 і стандартною анкетою з безпеки від\nSupabase, а організація на Free чи Pro бачить там натомість кнопку переходу на\nвищий тариф.",[10,244,245],{},"Team починається від $599 на місяць, тоді як Pro від $25, тож варто знати, що\nкупує ця різниця. Документація Supabase каже, що кожен проєкт підпорядкований\nтому самому набору засобів контролю відповідності, тож проєкт на Pro працює на\nтій самій перевіреній платформі. Team додає документи, а разом із ними єдиний\nвхід (SSO) до панелі, щоденні резервні копії, що зберігаються 14 днів там, де\nPro тримає 7, і можливість підключити HIPAA. Якщо клієнт просить сам звіт,\nспитайте, чи вистачить йому публічної сторінки безпеки Supabase, перш ніж\nміняти тариф заради одного PDF.",[23,247,249],{"id":248},"чи-сертифікований-supabase-за-iso-27001","Чи сертифікований Supabase за ISO 27001?",[10,251,252,253,258],{},"Так, за ISO\u002FIEC 27001:2022, про що Supabase\n",[31,254,257],{"href":255,"rel":256},"https:\u002F\u002Fsupabase.com\u002Fblog\u002Fsupabase-is-now-iso-27001-certified",[35],"оголосив"," 22\nквітня 2026 року.",[10,260,261],{},"ISO 27001 сертифікує систему управління: політики, оцінки ризиків і процеси, за\nякими компанія захищає інформацію, що в неї є. Акредитований аудитор видає\nсертифікат на три роки і щороку в цей проміжок повертається перевірити, що\nсистема досі працює. У банку це інспектор, який дивиться, як правила безпеки\nухвалюють і підтримують актуальними. Оголошення Supabase описує SOC 2 як\nшироко визнаний у Північній Америці, а ISO 27001 як широко визнаний у Європі,\nАзії та державному секторі. Сертифікат лежить у тому самому розділі Legal\nDocuments, на тих самих тарифах.",[23,263,265],{"id":264},"чи-відповідає-supabase-hipaa","Чи відповідає Supabase HIPAA?",[10,267,268],{},"Для вашого проєкту може відповідати, щойно ви підпишете з Supabase Business\nAssociate Agreement і оплатите його додаток HIPAA. Це не відбувається\nавтоматично, і сторінка SOC 2 від Supabase каже, що SOC 2 його не замінює.",[10,270,271],{},"Business Associate Agreement, або BAA, це письмовий договір, якого вимагає\nамериканське медичне право, перш ніж компанія зможе обробляти захищену медичну\nінформацію від вашого імені. Supabase підписує його на тарифі Team і вище.\nОпублікованої ціни на додаток немає: ви надсилаєте запит, Supabase відповідає\nз ціною і процедурою, а організація на Free чи Pro, яка подає заявку, після\nсхвалення однаково мусить перейти на Team.",[10,273,274,275,280],{},"Підпис це місце, де починається ваша частина.\n",[31,276,279],{"href":277,"rel":278},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fdeployment\u002Fshared-responsibility-model#managing-healthcare-data",[35],"Модель спільної відповідальності","\nSupabase перелічує, що має зробити клієнт з HIPAA, і ось пункти, з якими\nвласник застосунку найменш імовірно вже стикався:",[282,283,284,288,291,294,297],"ul",{},[285,286,287],"li",{},"Позначити проєкт як HIPAA-проєкт і діяти за тим, що про нього повідомляє\nSecurity Advisor.",[285,289,290],{},"Увімкнути двофакторний вхід для кожного акаунта в організації Supabase.",[285,292,293],{},"Увімкнути відновлення на момент у часі, для якого потрібен щонайменше\nобчислювальний додаток Small.",[285,295,296],{},"Увімкнути обов’язковий SSL і мережеві обмеження.",[285,298,299],{},"Не класти медичні дані в публічні бакети сховища.",[10,301,302],{},"Шифрування у стані спокою і під час передавання теж є в цьому списку, і це\nєдиний пункт, який Supabase уже виконав.",[23,304,306],{"id":305},"чи-відповідає-supabase-gdpr","Чи відповідає Supabase GDPR?",[10,308,309],{},"Supabase підтримує застосунки, що відповідають GDPR, і дає дві частини, які\nможе дати тільки він. Чи відповідає ваш застосунок, залежить від того, що він\nробить із даними людей.",[10,311,312,313,318],{},"Перша частина це розташування. Ви обираєте регіон, коли створюєте проєкт, і\nконкретний регіон ЄС тримає там вашу базу даних, Auth і Storage. Обирайте\nрегіон за назвою, бо загальний варіант Europe у Supabase включає ще Лондон і\nЦюрих. Друга це\n",[31,314,317],{"href":315,"rel":316},"https:\u002F\u002Fsupabase.com\u002Flegal\u002Fdpa",[35],"Data Processing Addendum",", договір про обробку\nданих, якого GDPR вимагає між вами і компанією, що обробляє персональні дані\nдля вас. Договір Supabase є частиною його умов використання, тож він уже є в\nкожної організації.",[10,320,321,322,327],{},"Решта належить вашому застосунку: навіщо ви збираєте кожне поле, як люди на це\nпогоджуються, хто може його читати і як ви його видаляєте на прохання.\n",[31,323,326],{"href":324,"rel":325},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fsecurity\u002Fgdpr-compliance",[35],"Сторінка про GDPR","\nSupabase прямо каже, що вибір регіону сам по собі не робить застосунок\nвідповідним. Що ваш застосунок винен за законом, це питання до юриста.",[23,329,331],{"id":330},"як-заповнити-анкету-з-безпеки-від-клієнта","Як заповнити анкету з безпеки від клієнта?",[10,333,334],{},"Розкладіть її на дві купки, перш ніж щось писати. Одні рядки питають про\nплатформу Supabase, і відповіді на них беруться з документів Supabase. Інші\nпитають про ваш проєкт, і відповісти на них можете тільки ви.",[80,336,337,350],{},[83,338,339],{},[86,340,341,344,347],{},[89,342,343],{},"Анкета питає",[89,345,346],{},"Хто відповідає",[89,348,349],{},"Де відповідь",[99,351,352,363,373,383,393,404,419,429,439],{},[86,353,354,357,360],{},[104,355,356],{},"Чи зашифровані дані у стані спокою?",[104,358,359],{},"Supabase",[104,361,362],{},"AES-256, на сторінці безпеки Supabase",[86,364,365,368,370],{},[104,366,367],{},"Чи зашифровані дані під час передавання?",[104,369,359],{},[104,371,372],{},"TLS на кожному API, і на прямих з’єднаннях з Postgres, коли ви зробите SSL обов’язковим",[86,374,375,378,380],{},[104,376,377],{},"Чи має ваш постачальник SOC 2 або ISO 27001?",[104,379,359],{},[104,381,382],{},"Обидва, документи можна завантажити на Team або Enterprise",[86,384,385,388,390],{},[104,386,387],{},"Чи є у вас DPA з обробниками даних?",[104,389,359],{},[104,391,392],{},"Частина умов використання Supabase",[86,394,395,398,401],{},[104,396,397],{},"Де зберігаються дані?",[104,399,400],{},"Ви",[104,402,403],{},"Регіон, який ви обрали під час створення проєкту",[86,405,406,409,412],{},[104,407,408],{},"Як часто робляться резервні копії?",[104,410,411],{},"Ваш тариф",[104,413,414,415],{},"Нічого автоматичного на Free, щодня на Pro. ",[31,416,418],{"href":417},"\u002Fblog\u002Fsupabase-free-plan-limits","Що зберігає кожен тариф",[86,420,421,424,426],{},[104,422,423],{},"Хто може читати які записи?",[104,425,400],{},[104,427,428],{},"Політика Row Level Security на кожній таблиці",[86,430,431,434,436],{},[104,432,433],{},"Де зберігаються облікові дані?",[104,435,400],{},[104,437,438],{},"Секретний ключ тільки на сервері. Публічний ключ створений для того, щоб бути публічним",[86,440,441,444,446],{},[104,442,443],{},"Хто має адміністративний доступ?",[104,445,400],{},[104,447,448],{},"Учасники вашої організації в Supabase, з двофакторним входом",[10,450,451],{},"Рядки про Supabase переносяться просто з його документів. Останні три це ті,\nзаради яких клієнт і надіслав анкету, і щоб на них відповісти, вам потрібен\nвласний проєкт, відкритий перед очима.",[23,453,455],{"id":454},"що-сказати-клієнту-який-питає-хто-може-читати-дані","Що сказати клієнту, який питає, хто може читати дані?",[10,457,458],{},"Стан ваших політик, таблиця за таблицею, і дату, коли ви їх востаннє\nперевіряли. \"Дані зашифровані\" відповідає на питання про вкрадені диски, а\nклієнт, який питає про доступ, питає про віконце каси.",[10,460,461,462,465,466,469],{},"Чесна відповідь називає таблиці з персональними даними і каже, що на кожній\nувімкнено Row Level Security з політикою, яка прив’язує кожен рядок до людини,\nщо увійшла і якій він належить. Вона каже, коли ви востаннє перевіряли ззовні,\nяк відвідувач без входу, що ці таблиці нічого не повертали. Якщо таблиця\nпублічна навмисно, список товарів чи опубліковані дописи, вона каже й це. Далі\nадміністративний бік: хто може відкрити вашу панель Supabase, з двофакторним\nвходом, і де живе секретний ключ. У старіших проєктах цей ключ називається\n",[180,463,464],{},"service_role",", у новіших ",[180,467,468],{},"sb_secret_…",", і його місце на сервері.",[10,471,472,473,477,478,482],{},"Щоб дізнатися стан ваших таблиць, почніть із Security Advisor у панелі\nSupabase, який перелічує кожну таблицю з вимкненим Row Level Security. Таблиця\nможе пройти цю перевірку і все одно бути відкритою через політику, яка\nпропускає всіх.\n",[31,474,476],{"href":475},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","Чотири стани, в яких може бути таблиця",",\nпоказують, як їх розрізнити, а для\n",[31,479,481],{"href":480},"\u002Fis-your-supabase-app-safe","застосунків на Supabase"," є покроковий розбір\nпростою мовою.",[161,484],{"alt":485,"caption":486,"src":487},"Той самий анонімний запит із позначкою anon іде до двох таблиць з однаковим замком. Перед однією стоїть політика як бар’єр, і вона нічого не повертає. Перед іншою її немає, і вона повертає кожен рядок.","Обидві таблиці зашифровані однаково. Політика це єдина різниця між двома відповідями.","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fsame-lock-two-answers-1600x680.png",[10,489,490],{},"Записуйте лише те, що перевірили. Якщо ви ще не читали політику якоїсь таблиці,\nназвіть дату, до якої це зробите.",[23,492,494],{"id":493},"як-reeve-перевіряє-відповідь-ззовні","Як Reeve перевіряє відповідь ззовні",[10,496,497],{},[41,498,499],{},"Рядки, які анкета лишає вам, стосуються того, хто отримує відповідь. Reeve\nпитає ваш опублікований застосунок так, як спитав би незнайомець, і каже, які\nтаблиці відповіли.",[282,501,502,512,518],{},[285,503,504,507,508,235],{},[41,505,506],{},"Безкоштовний скан"," питає кожну таблицю, яку називає ваш застосунок,\nскільки рядків отримав би відвідувач без входу, читає число і зупиняється, не\nзабравши жодного рядка. Близько 20 секунд, без акаунта:\n",[31,509,511],{"href":510},"\u002Fsecurity-scanner","проскануйте свій застосунок",[285,513,514,517],{},[41,515,516],{},"Reeve Monitor"," щогодини заново проганяє всі дев’ять перевірок для трьох\nзастосунків і пише вам того дня, коли ваша оцінка погіршується, тож таблицю,\nяку ваш builder додасть після того, як анкету відправлено, перевірять\nупродовж години.",[285,519,520,523,524,526,527,531,532,235],{},[41,521,522],{},"Care"," робить ті самі перевірки і тримає копію вашої бази даних\n",[41,525,359],{}," поза вашим акаунтом Supabase, зроблену за розкладом і прочитану\nназад, перш ніж вона зарахується, і це відповідь на рядок про резервні копії.\nКожну копію зашифровано через AES-256-GCM ключем, який належить лише вашому\nакаунту, а ",[31,528,530],{"href":529},"\u002Flegal","наша юридична сторінка"," пояснює, як ці ключі\nзберігаються. ",[31,533,535],{"href":534},"\u002Fsupabase-backups","Як копію роблять і повертають на місце",[10,537,538,539,235],{},"Що покриває і скільки коштує кожен тариф, є на ",[31,540,542],{"href":541},"\u002Fpricing","сторінці цін",[23,544,546],{"id":545},"що-зробити-зараз","Що зробити зараз",[548,549,550],"key-takeaways",{},[282,551,552,555,558,561,564],{},[285,553,554],{},"Відповідайте на рядки про шифрування за сторінкою безпеки Supabase: AES-256 у стані спокою і TLS під час передавання, на кожному тарифі, без жодного вмикання.",[285,556,557],{},"Якщо клієнту потрібен сам звіт SOC 2 чи сертифікат ISO 27001, це означає тариф Team. Завантажте обидва з Legal Documents у панелі вашої організації.",[285,559,560],{},"Якщо ваш застосунок зберігає медичні дані, підпишіть BAA і пройдіть список HIPAA від Supabase, перш ніж класти туди хоч щось.",[285,562,563],{},"Відповідайте на рядки про доступ зі свого власного проєкту. Відкрийте Security Advisor, а потім прочитайте політику на кожній таблиці, де є люди.",[285,565,566],{},"Перевірте результат ззовні, як відвідувач без входу, і поставте дату поруч зі своєю відповіддю.",[10,568,569,570,572],{},"Половину анкети, що стосується шифрування, за вас уже заповнено. Перш ніж\nвідправити її назад, ",[31,571,511],{"href":510}," і\nподивіться, які з ваших таблиць сьогодні відповідають незнайомцю.",{"title":574,"searchDepth":575,"depth":575,"links":576},"",3,[577,579,580,581,582,583,584,585,586,587,588,589],{"id":25,"depth":578,"text":26},2,{"id":146,"depth":578,"text":147},{"id":168,"depth":578,"text":169},{"id":195,"depth":578,"text":196},{"id":238,"depth":578,"text":239},{"id":248,"depth":578,"text":249},{"id":264,"depth":578,"text":265},{"id":305,"depth":578,"text":306},{"id":330,"depth":578,"text":331},{"id":454,"depth":578,"text":455},{"id":493,"depth":578,"text":494},{"id":545,"depth":578,"text":546},"Основи безпеки","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fcover-1200x630.png","Круглі двері банківського сховища, зачинені й замкнені, у бірюзовому світлі. Поруч відчинене віконце каси, з якого вислизає аркуш паперу.","Чи шифрує Supabase дані? Так: AES-256 у стані спокою, TLS під час передавання, SOC 2 та ISO 27001. Що покриває кожне і який витік не зупиняє жодне.",false,"md",[597,600,602,604,606,609],{"q":598,"a":599},"Чи шифрує Supabase мої дані у стані спокою?","Так. Supabase шифрує всі дані клієнтів у стані спокою через AES-256 і під час передавання через TLS, на кожному тарифі, і вам нічого не треба вмикати. Чого він не додає за замовчуванням, так це другого шару на окремих стовпцях усередині бази, а від функції шифрування стовпців, яку раніше документував, Supabase тепер радить відмовитися. Для секретів на кшталт API-ключа стороннього сервісу він пропонує Vault.",{"q":196,"a":601},"Так. Supabase має звіт SOC 2 Type 2 від незалежного аудитора, що оновлюється щороку за період аудиту з 1 березня по 28 лютого. Він покриває платформу Supabase. Supabase зазначає, що ця відповідність не поширюється за межі його продукту, а налаштування всередині вашого власного проєкту, наприклад хто може читати кожну таблицю, лишаються вашою відповідальністю.",{"q":239,"a":603},"Завантажте його з розділу Legal Documents у панелі вашої організації. Він доступний організаціям на тарифі Team, від $599 на місяць, і на Enterprise. Сертифікат ISO 27001 і стандартна анкета з безпеки лежать там само. На Free або Pro ця сторінка натомість пропонує перейти на вищий тариф.",{"q":265,"a":605},"Для вашого проєкту може відповідати, але не автоматично. Потрібні підписаний Business Associate Agreement і платний додаток HIPAA, обидва на тарифі Team і вище, і Supabase пише, що SOC 2 не замінює жодного з них. Далі ви позначаєте проєкт як HIPAA-проєкт і вмикаєте те, що Supabase для нього перелічує, зокрема двофакторний вхід, відновлення на момент у часі, обов’язковий SSL і мережеві обмеження.",{"q":607,"a":608},"Чи захищає шифрування від неправильно налаштованої таблиці?","Ні. Шифрування захищає дані від того, хто дістається до диска чи трафіку, не проходячи через базу даних. Запит, на який база вирішує відповісти, розшифровується для того, хто його надіслав, а те, які запити отримують відповідь, визначає Row Level Security на кожній таблиці. У серпні 2026 року ми знайшли щонайменше одну таблицю, відкриту незнайомцю, у 2 096 із 3 680 застосунків на Supabase, які змогли перевірити.",{"q":610,"a":611},"Що відповісти клієнту, який питає, чи зашифровані його дані?","Так, із подробицями: AES-256 у стані спокою і TLS під час передавання, які Supabase застосовує до кожного проєкту, а за ними звіт SOC 2 Type 2 і сертифікація ISO 27001. Потім відповідайте на питання під цим питанням: хто може ці дані читати. Назвіть таблиці з персональними даними, політику Row Level Security на кожній і дату, коли ви востаннє перевірили ззовні, що відвідувач без входу нічого не отримує.","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fcard-800x500.png",[614,615,616,617,618,619,620,621,622,623],"чи шифрує supabase дані","шифрування supabase","supabase шифрування у стані спокою","звіт soc 2 supabase","чи відповідає supabase soc 2","supabase iso 27001","supabase hipaa","чи відповідає supabase gdpr","відповідність supabase","сертифікації безпеки supabase",{},true,"\u002Fblog\u002Fdoes-supabase-encrypt-my-data","2026-09-30",{"title":5,"description":593},"blog\u002Fdoes-supabase-encrypt-my-data",[631,632,633],"Чи шифрує Supabase дані? Так. Кожен проєкт зашифрований у стані спокою через AES-256 і під час передавання через TLS, на кожному тарифі, і нічого вмикати не треба.","Supabase також має звіт SOC 2 Type 2 і сертифікат ISO 27001. Обидва документи можна завантажити на тарифі Team і вище, а для HIPAA потрібна ще й підписана угода.","Ніщо з цього не вирішує, кому відповідає база даних. У 2 096 із 3 680 застосунків на Supabase, які ми змогли перевірити, таблиця віддавала свої рядки незнайомцю без входу.","teqc6o10Yp9_1Ksq0DPLUsiAb5kcVWBCKY4R5Ej_XEU",[636,642,648,654,660,666,672,678,684,690,696,702,703,708,715,721,727,732,738,744,750,756,762,768,774,780,786,792,798,804,810,816,822,828,834,840,846,852,858,864,870,876,882,888,894,899,905,911,917,923,929,935,941,947,952,957,963,969,974,979,985],{"path":637,"title":638,"description":639,"published":640,"category":590,"image":641,"draft":594},"\u002Fblog\u002Fstorage-upload-violates-row-level-security","\"Row-level security policy for table objects\" при вивантаженні","\"New row violates row-level security policy for table objects\" означає, що вашому вивантаженню бракує правила insert. Публічний бакет його не додає.","2026-10-11","\u002Fblog\u002Fstorage-upload-violates-row-level-security\u002Fcard-800x500.png",{"path":643,"title":644,"description":645,"published":646,"category":590,"image":647,"draft":594},"\u002Fblog\u002Fbase44-security-scan","Сканування безпеки Base44: те, що бачить лише воно","Сканування безпеки Base44 перевіряє сім видів проблем зсередини. Ось половина, яку читає тільки воно, і половина, на яку воно ніколи не дивиться.","2026-10-10","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",{"path":649,"title":650,"description":651,"published":652,"category":590,"image":653,"draft":594},"\u002Fblog\u002Fapi-key-leaked-what-to-do","Ваш API-ключ витік. Порядок дій","API-ключ витік, і ви не знаєте, що робити першим. Не кожен ключ у вашому фронтенді є витоком, а порядок важить більше за швидкість.","2026-10-09","\u002Fblog\u002Fapi-key-leaked-what-to-do\u002Fcard-800x500.png",{"path":655,"title":656,"description":657,"published":658,"category":590,"image":659,"draft":594},"\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":661,"title":662,"description":663,"published":664,"category":590,"image":665,"draft":594},"\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":667,"title":668,"description":669,"published":670,"category":590,"image":671,"draft":594},"\u002Fblog\u002Fis-base44-safe","Чи безпечний Base44? Дані 5 442 застосунків","Чи безпечний Base44? Ми прогнали дев’ять перевірок на 5 442 робочих застосунках Base44. Майже всі отримали B з причин, яких власник ніколи не обирав.","2026-10-06","\u002Fblog\u002Fis-base44-safe\u002Fcard-800x500.png",{"path":673,"title":674,"description":675,"published":676,"category":590,"image":677,"draft":594},"\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":679,"title":680,"description":681,"published":682,"category":590,"image":683,"draft":594},"\u002Fblog\u002Fenv-file-exposed-on-your-server","Чи відкритий ваш файл .env? Дванадцять шляхів для перевірки","Чи відкритий ваш файл .env на вашому власному вебсервері? Дванадцять адрес скажуть це за хвилину, а влучання означає, що все в ньому вже публічне.","2026-10-04","\u002Fblog\u002Fenv-file-exposed-on-your-server\u002Fcard-800x500.png",{"path":685,"title":686,"description":687,"published":688,"category":590,"image":689,"draft":594},"\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":691,"title":692,"description":693,"published":694,"category":590,"image":695,"draft":594},"\u002Fblog\u002Fis-bolt-safe","Чи безпечний Bolt? Що показали 1 123 застосунки Bolt","Чи безпечний Bolt? Ми прогнали 1 123 живі застосунки Bolt через дев’ять перевірок. Хостинг був чистим. Знахідки: ключі й відкриті таблиці в самих застосунках.","2026-10-02","\u002Fblog\u002Fis-bolt-safe\u002Fcard-800x500.png",{"path":697,"title":698,"description":699,"published":700,"category":590,"image":701,"draft":594},"\u002Fblog\u002Fis-supabase-down-or-your-app","Supabase не працює чи проблема у вашому застосунку? Як розрізнити","Supabase не працює чи зламався ваш застосунок? Пауза, повна база й ваша власна помилка виглядають однаково. Чотири перевірки їх розрізняють.","2026-10-01","\u002Fblog\u002Fis-supabase-down-or-your-app\u002Fcard-800x500.png",{"path":626,"title":5,"description":593,"published":627,"category":590,"image":612,"draft":594},{"path":417,"title":704,"description":705,"published":706,"category":590,"image":707,"draft":594},"Ліміти безкоштовного тарифу Supabase і що стається на кожному","Ліміти безкоштовного тарифу Supabase: 500 МБ бази, 5 ГБ egress і жодних резервних копій. Що стається на кожній межі і що змінює Pro за $25.","2026-09-29","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",{"path":709,"title":710,"description":711,"published":712,"category":713,"image":714,"draft":594},"\u002Fblog\u002Ftest-your-supabase-backup","Перевірте резервну копію Supabase до того, як вона знадобиться","Як перевірити резервну копію Supabase: відновити в тестовий проєкт, порахувати рядки, увійти й знайти рядок, якого бракує обрізаному файлу.","2026-09-28","Backups","\u002Fblog\u002Ftest-your-supabase-backup\u002Fcard-800x500.png",{"path":716,"title":717,"description":718,"published":719,"category":713,"image":720,"draft":594},"\u002Fblog\u002Fsupabase-backup-github-action","Безкоштовна резервна копія Supabase через GitHub Action і підступ","Резервна копія Supabase через GitHub Action безкоштовна й годиться багатьом застосункам. Робочий процес, потрібний рядок підключення та egress.","2026-09-27","\u002Fblog\u002Fsupabase-backup-github-action\u002Fcard-800x500.png",{"path":722,"title":723,"description":724,"published":725,"category":713,"image":726,"draft":594},"\u002Fblog\u002Fdownload-your-supabase-backup","Чому ви не можете завантажити резервну копію Supabase","Завантажити резервну копію Supabase на сучасному проєкті не вийде: щоденна копія там фізична. Як це перевірити і як тримати власну копію.","2026-09-26","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fcard-800x500.png",{"path":728,"title":729,"description":730,"published":725,"category":590,"image":731,"draft":594},"\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":733,"title":734,"description":735,"published":736,"category":590,"image":737,"draft":594},"\u002Fblog\u002Fopen-api-endpoint-exposed","Чи є відкритий API-ендпоінт проблемою безпеки? Читайте JSON","Ваше сканування позначило відкритий API-ендпоінт. Чи це важливо, залежить від того, що повернулося, і більшість знайдених належали платформі.","2026-09-25","\u002Fblog\u002Fopen-api-endpoint-exposed\u002Fcard-800x500.png",{"path":739,"title":740,"description":741,"published":742,"category":590,"image":743,"draft":594},"\u002Fblog\u002Flovable-security-scan","Сканування безпеки Lovable: чого воно не доведе","Сканування безпеки Lovable: що перевіряють Quick scan і Deep scan, коли запускається кожне, і єдине, чого не доведе жодне сканування зсередини.","2026-09-24","\u002Fblog\u002Flovable-security-scan\u002Fcard-800x500.png",{"path":745,"title":746,"description":747,"published":748,"category":713,"image":749,"draft":594},"\u002Fblog\u002Fsupabase-backup-auth-users","Чому у вашому дампі Supabase немає користувачів","Запустіть supabase db dump окремо і отримаєте форму вашої бази та жодного її рядка, без схеми auth, у якій живуть ваші користувачі.","2026-09-23","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":751,"title":752,"description":753,"published":754,"category":590,"image":755,"draft":594},"\u002Fblog\u002Fdomain-and-certificate-expiry","Домен закінчився, сайт лежить: що буде далі","Ваш домен закінчився і сайт лежить. Ось який годинник уже пішов, чому прострочений сертифікат це менша з двох бід, і як перевірити обидва.","2026-09-22","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":757,"title":758,"description":759,"published":760,"category":590,"image":761,"draft":594},"\u002Fblog\u002Fis-lovable-safe","Чи безпечний Lovable? Що показали 18 554 застосунки Lovable","Чи безпечний Lovable? Ми прогнали 18 554 живі застосунки Lovable через дев’ять перевірок. Платформа виявилася найчистішою з п’яти. Знахідки були в застосунках.","2026-09-21","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":763,"title":764,"description":765,"published":766,"category":590,"image":767,"draft":594},"\u002Fblog\u002Fvibe-coded-app-security-checklist","Чек-лист безпеки для vibe coding, у девʼяти перевірках","Чек-лист безпеки для vibe coding із девʼяти пунктів, кожен з яких будь-хто може перевірити у вашому живому застосунку ззовні, і кожен має тест на один рядок.","2026-09-20","\u002Fblog\u002Fvibe-coded-app-security-checklist\u002Fcard-800x500.png",{"path":769,"title":770,"description":771,"published":772,"category":590,"image":773,"draft":594},"\u002Fblog\u002Fstripe-secret-key-in-frontend","Секретний ключ Stripe у фронтенді може рухати гроші","Секретний ключ Stripe, відкритий у вашому фронтенді, може повертати кошти, списувати й читати кожну картку клієнта. А ключ pk_live_ там і має бути.","2026-09-19","\u002Fblog\u002Fstripe-secret-key-in-frontend\u002Fcard-800x500.png",{"path":775,"title":776,"description":777,"published":778,"category":590,"image":779,"draft":594},"\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":781,"title":782,"description":783,"published":784,"category":590,"image":785,"draft":594},"\u002Fblog\u002Fbase44-source-maps","Безпека Base44: що позначає скан і що з цього виправляти вам","Безпека Base44 на 5 438 просканованих застосунках: три знахідки майже на кожному належать платформі, source map є бейджем Base44, а ваша частина коротка.","2026-09-17","\u002Fblog\u002Fbase44-source-maps\u002Fcard-800x500.png",{"path":787,"title":788,"description":789,"published":790,"category":590,"image":791,"draft":594},"\u002Fblog\u002Fis-cursor-ai-safe","Чи безпечний Cursor AI? Редактор, код і опублікований застосунок","Чи безпечний Cursor AI? Три запитання в одному пошуку: що Cursor зберігає, у чому помиляється його код і чи відкритий застосунок, який ви опублікували.","2026-09-16","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",{"path":793,"title":794,"description":795,"published":796,"category":590,"image":797,"draft":594},"\u002Fblog\u002Fis-replit-safe","Чи безпечний Replit? Що ми знайшли в 3 042 живих застосунках Replit","Чи безпечний Replit? Ми прогнали 3 042 живі застосунки Replit через дев’ять зовнішніх перевірок. Знахідки були в опублікованому застосунку, а не в хостингу.","2026-09-15","\u002Fblog\u002Fis-replit-safe\u002Fcard-800x500.png",{"path":799,"title":800,"description":801,"published":802,"category":713,"image":803,"draft":594},"\u002Fblog\u002Fsupabase-storage-backup","Supabase storage backup: у копії бази даних немає жодного файлу","Supabase storage backup це окрема робота. Копії бази даних зберігають список ваших файлів і жодного з них, тож після відновлення кожне завантаження зламане.","2026-09-14","\u002Fblog\u002Fsupabase-storage-backup\u002Fcard-800x500.png",{"path":805,"title":806,"description":807,"published":808,"category":713,"image":809,"draft":594},"\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":811,"title":812,"description":813,"published":814,"category":713,"image":815,"draft":594},"\u002Fblog\u002Fsupabase-project-paused-recover","Проєкт Supabase на паузі? Ваші дані нікуди не зникли","Supabase поставив ваш проєкт на паузу після тижня без активності. Нічого не видалено, кнопка Restore стоїть поруч із назвою, і у вас є рік, щоб натиснути.","2026-09-12","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",{"path":817,"title":818,"description":819,"published":820,"category":590,"image":821,"draft":594},"\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":823,"title":824,"description":825,"published":826,"category":590,"image":827,"draft":594},"\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":829,"title":830,"description":831,"published":832,"category":590,"image":833,"draft":594},"\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":835,"title":836,"description":837,"published":838,"category":590,"image":839,"draft":594},"\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":841,"title":842,"description":843,"published":844,"category":590,"image":845,"draft":594},"\u002Fblog\u002Fvibe-coding-security-scanners-compared","Сканери безпеки для vibe coding у порівнянні, наш теж","Найкращий сканер безпеки для vibe coding залежить від трьох питань, на які не відповідає жоден перелік функцій. Десять інструментів і ціни.","2026-09-07","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",{"path":847,"title":848,"description":849,"published":850,"category":590,"image":851,"draft":594},"\u002Fblog\u002Fsupabase-security-checker","Supabase security checker: п’ять перевірок, які зробите самі","Supabase security checker читає ваш опублікований застосунок, а не налаштування проєкту. Ось п’ять перевірок і як виконати кожну самостійно.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":853,"title":854,"description":855,"published":856,"category":590,"image":857,"draft":594},"\u002Fblog\u002Fvibe-coding-security-scanner","Сканер безпеки для vibe coding: чого не бачить скан URL","Сканер безпеки для vibe coding читає ваш робочий застосунок ззовні. Що це охоплює, чотири речі, яких він не бачить, і як читати результат.","2026-09-05","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":859,"title":860,"description":861,"published":862,"category":590,"image":863,"draft":594},"\u002Fblog\u002Fmissing-security-headers","Відсутні заголовки безпеки: коли це справді важливо","Відсутні заголовки безпеки трапляються в наших звітах найчастіше. Від чого вони захищають і коли це найменш терміновий рядок вашого звіту.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":865,"title":866,"description":867,"published":868,"category":590,"image":869,"draft":594},"\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":871,"title":872,"description":873,"published":874,"category":590,"image":875,"draft":594},"\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":877,"title":878,"description":879,"published":880,"category":713,"image":881,"draft":594},"\u002Fblog\u002Fsupabase-backup-tools-compared","Інструменти резервного копіювання Supabase, і наш серед них","Чотири види інструментів резервного копіювання Supabase, що копіює кожен і коли безкоштовна GitHub Action виграє в будь-якої оплати, нашої теж.","2026-09-01","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",{"path":883,"title":884,"description":885,"published":886,"category":590,"image":887,"draft":594},"\u002Fblog\u002Freplit-secrets-explained","Як користуватися секретами в Replit і що все одно публікується","Як користуватися секретами в Replit: додати, прочитати і усунути дві причини undefined. А ще ключі, які цей інструмент не здатен зберегти в таємниці.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":889,"title":890,"description":891,"published":892,"category":713,"image":893,"draft":594},"\u002Fblog\u002Fback-up-supabase-free-tier","Резервні копії на безкоштовному тарифі Supabase без терміналу","На безкоштовному тарифі Supabase резервних копій немає: копію робите ви. Як зробити її з панелі та що втрачає шлях через CSV.","2026-08-30","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",{"path":233,"title":895,"description":896,"published":897,"category":590,"image":898,"draft":594},"Чи безпечний Supabase? Так. Ваш проєкт це інше питання","Чи безпечний Supabase? Платформа проходить аудити, шифрує дані й тримає пентести. Їхня документація каже, де це закінчується і починаються ваші налаштування.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":900,"title":901,"description":902,"published":903,"category":590,"image":904,"draft":594},"\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":906,"title":907,"description":908,"published":909,"category":590,"image":910,"draft":594},"\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":912,"title":913,"description":914,"published":915,"category":590,"image":916,"draft":594},"\u002Fblog\u002Fcors-wildcard-security-risk","Чи є вайлдкард CORS ризиком для безпеки? Майже ніколи.","Чи є вайлдкард CORS ризиком для безпеки? Зазвичай це типове налаштування вашого білдера, і воно не видає нічого, що ваш сервер і так віддавав кожному.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":918,"title":919,"description":920,"published":921,"category":713,"image":922,"draft":594},"\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":924,"title":925,"description":926,"published":927,"category":713,"image":928,"draft":594},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","Як відновити резервну копію Supabase, і що ламається потім","Як відновити резервну копію Supabase з панелі або з файлу дампа, що саме замінює відновлення і чому ваш застосунок може лишитися зламаним після нього.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":930,"title":931,"description":932,"published":933,"category":590,"image":934,"draft":594},"\u002Fblog\u002Fsupabase-storage-bucket-public","Ваш бакет Supabase Storage публічний. Чи це проблема?","Публічний бакет Supabase Storage означає, що той, хто має URL файлу, може його відкрити. Він не означає, що хтось може переглянути список вмісту.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":936,"title":937,"description":938,"published":939,"category":590,"image":940,"draft":594},"\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":942,"title":943,"description":944,"published":945,"category":713,"image":946,"draft":594},"\u002Fblog\u002Fai-agent-deleted-my-database","ШІ-агент видалив мої дані в Supabase. Що можна відновити?","ШІ-агент видалив дані з вашої бази. Те, що ви зможете відновити, вирішилося раніше, а наступні хвилини вирішують, скільки з цього вціліє.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":190,"title":948,"description":949,"published":950,"category":590,"image":951,"draft":594},"Чи може будь-хто прочитати вашу базу Supabase? 3 680 застосунків","Чи може будь-хто прочитати вашу базу даних Supabase без входу? Ми просканували 30 998 живих застосунків, зроблених ШІ-білдерами, і виміряли, як часто так.","2026-08-18","\u002Fblog\u002Fcan-anyone-read-your-supabase-database\u002Fcard-800x500.png",{"path":953,"title":954,"description":955,"published":950,"category":590,"image":956,"draft":594},"\u002Fblog\u002Fsource-maps-exposed-in-production","Відкриті source maps: ваш застосунок публікує свій вихідний код","Відкрита source map дає будь-кому прочитати оригінальний код вашого застосунку, разом із коментарями. Перевірка за 30 секунд, і що важить насправді.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":958,"title":959,"description":960,"published":961,"category":590,"image":962,"draft":594},"\u002Fblog\u002Fsupabase-new-api-keys","Нові API-ключі Supabase: який із них безпечний у застосунку?","Supabase замінив anon і service_role публічними та секретними ключами. Який із них має бути у вашому застосунку, а який не має бути ніколи?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":964,"title":965,"description":966,"published":967,"category":713,"image":968,"draft":594},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","Чи робить Supabase резервні копії моєї бази? Залежить від тарифу.","Чи робить Supabase резервні копії вашої бази даних? На платних тарифах щодня, на безкоштовному жодної. Як дізнатися, що у вас насправді є.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":475,"title":970,"description":971,"published":972,"category":590,"image":973,"draft":594},"Supabase Row Level Security увімкнено. Таблиця досі публічна.","Увімкнути Supabase Row Level Security не означає захистити таблицю. Захищають політики, а та, що полагодила застосунок, часто впускає всіх.","2026-08-10","\u002Fblog\u002Fsupabase-rls-on-but-table-still-public\u002Fcard-800x500.png",{"path":975,"title":976,"description":977,"published":972,"category":713,"image":978,"draft":594},"\u002Fblog\u002Fversion-history-is-not-a-backup","Історія версій не є резервною копією. Вона не поверне таблицю.","Lovable і Bolt ведуть історію версій вашого коду. Ваша база даних працює як окремий сервіс, тож відкат назад не поверне ваші дані.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":980,"title":981,"description":982,"published":983,"category":713,"image":984,"draft":594},"\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":986,"title":987,"description":988,"published":983,"category":590,"image":989,"draft":594},"\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",1791705966124]