Безпека застосунку, зробленого вайбкодингом: перевірка за один вечір

AI-конструктор вміє зробити застосунок, який працює. Але він не попередить, що ключ від платіжки лежить у відкритому коді, а будь-який користувач може відкрити чуже замовлення. Такі речі не видно в демо — їх знаходять клієнти або, гірше, сторонні люди. Ось що перевірити до того, як ви покличете перших реальних користувачів.

Ключі та паролі

  • Відкрийте застосунок у браузері, натисніть F12 і пошукайте в коді сторінки та мережевих запитах «key», «secret», «sk-». Ключі від AI, оплат і пошти мають бути лише на сервері.
  • Перевірте історію в GitHub: ключ, який колись туди потрапив, залишається там навіть після видалення. Такий ключ треба замінити на новий у сервісі.
  • Поставте ліміти витрат у кабінетах AI-сервісів, щоб чужий бот не наговорив вам рахунок за ніч.

Дані клієнтів

  • Якщо застосунок працює на Supabase чи схожому сервісі, переконайтеся, що для кожної таблиці увімкнено row-level security і правила справді обмежують доступ власними записами.
  • Зробіть тест на двох акаунтах: зайдіть як перший користувач і спробуйте відкрити дані другого, змінивши номер в адресі чи запиті.
  • Зберігайте лише ті персональні дані, які справді потрібні. Закон «Про захист персональних даних» стосується і маленьких проєктів, а якщо серед клієнтів є люди з ЄС — ще й GDPR.

Вхід і права

  • Вхід — лише через вбудовану авторизацію платформи чи відомий сервіс, а не через саморобну таблицю паролів.
  • Пройдіть самі відновлення пароля і підтвердження пошти від початку до кінця.
  • Права перевіряються на сервері. Приховати кнопку «Адмінка» від звичайного користувача — не захист.

Оплати

  • Замовлення стає оплаченим лише тоді, коли LiqPay, WayForPay чи інший сервіс надіслав підтвердження на ваш сервер, а не коли браузер показав сторінку «Дякуємо за оплату».
  • Ціна рахується на сервері. Якщо її можна змінити в браузері перед оплатою, хтось це зробить.

Резервні копії й акаунти

  • Ви знаєте, де лежать резервні копії бази, і хоча б раз пробували з них відновитися.
  • Хостинг, база, домен, платіжний і AI-акаунти оформлені на вас або вашу компанію, а не на фрилансера чи знайомого.

Якщо щось знайшли

Почніть із найнебезпечнішого: замініть відкриті ключі, потім закрийте доступ до чужих даних, далі — решта. Просити AI виправити конкретну проблему можна, але результат перевіряйте самі тим самим тестом: AI інколи впевнено каже «виправлено», коли це не так. Якщо могли витекти дані реальних клієнтів, з’ясуйте, чи маєте ви їх повідомити.

Коли варто звернутися по допомогу

  • У застосунку є оплати, кабінети чи персональні дані, і на кону репутація.
  • Ви знайшли проблеми, але не впевнені, що закрили їх як слід.
  • Ви не можете сказати, що де працює і на кого оформлено.

Часті запитання

Застосунки з Lovable чи Bolt небезпечні?

Не самі по собі. Платформи дають цеглини, а безпека залежить від того, як їх складено: передусім від правил доступу до бази і від того, де лежать ключі. Чекліст вище покаже, як справи у вас.

Як швидко перевірити, чи не видно мого API-ключа?

Відкрийте застосунок, натисніть F12, перейдіть на вкладки з кодом і мережевими запитами і пошукайте ключ чи слова «key» і «secret». Знайшли — замініть ключ у сервісі і перенесіть його на сервер.

Чи потрібен аудит безпеки?

Якщо застосунок приймає гроші чи зберігає персональні дані — так, перевірка досвідченою людиною окупиться. Чекліст ловить найчастіші діри, але не всі.