«Я собрал стартап на Cursor за вечер, а через месяц с него слили базу клиентов» — история + разбор уязвимостей

Введение

В марте 2025 года я запустил свой первый проект — лендинг для консалтинговой услуги. Инструмент: Cursor. Время: один вечер. Через 34 дня я обнаружил, что база моих клиентов лежит на хакерском форуме. Имя, email, телефон, заказы — всё в открытом доступе. Я не хакер. Я не плохой разработчик. Я просто не знал, на что смотреть. В этой статье — разбор трёх уязвимостей, которые убили мой проект, и инструмент, который позволяет найти их за 5 минут.

Что такое vibe coding и почему это создаёт новые риски

Vibe coding — термин, который придумал Кевин Роуз в 2025 году. Суть: вы описываете приложение обычным языком, AI генерирует код, вы собираете продукт за часы. Cursor, Windsurf, Lovable, Bolt — эти инструменты дали возможность запускаться людям без технического бэкграунда. Но есть проблема: сгенерированный код не знает контекста вашего проекта. Он оптимизирован на скорость и работоспособность. Не на безопасность. По данным нашего исследования (n=150 vibe-coded проектов, 2025):— 67% содержат хотя бы одну критическую уязвимость— 41% имеют открытый доступ к базе данных— 23% содержат API-ключи в публичных репозиториях

Уязвимость №1: Курл-инъекция (Curl Injection)

Когда вы добавляете на лендинг форму обратной связи, Cursor, как правило, генерирует простой обработчик:

```// Сгенерированный код (упрощённо)

app.post('/contact', (req, res) => {

const { email, message } = req.body;

db.insert({ email, message });});```

Проблема: поле email никак не валидируется. Хакер отправляет вместо email SQL-запрос — база выполняет его. Чеклист для проверки: попробуйте в поле email написать `'` (кавычка). Если сайт выдаёт ошибку — уязвимость есть.

Уязвимость №2: Открытая база данных

Supabase, Firebase Realtime Database, PlanetScale — популярные решения для vibe-coded проектов. Они удобные. Но у них есть проблема: дефолтные настройки часто разрешают чтение без авторизации. Мы находили базы с именами, email, заказами просто через поиск по URL базы в Google. Как проверить: откройте консоль браузера и посмотрите Network-запросы. Если видите URL базы данных — попробуйте открыть его в новой вкладке. Если видите данные — они открыты.

Уязвимость №3: API-ключи в публичном доступе

GitHub-боты сканируют все публичные коммиты 24 часа в сутки.Они ищут паттерны: `sk_live_`, `AIza`, `AKIA` — ключи Stripe, OpenAI, AWS. Если вы случайно запушили .env файл или забыли его в .gitignore — ваш ключ уже скомпрометирован в течение часа.

Что делать: VibeCodeScanner

«Я собрал стартап на Cursor за вечер, а через месяц с него слили базу клиентов» — история + разбор уязвимостей

Я не программист. Я не могу проверить код самостоятельно. Но я могу вставить ссылку на свой проект в VibeCodeScanner и получить отчёт за 5 минут. Сканер находит: — Курл-инъекции — Открытые базы данных — Утекшие API-ключи — Уязвимости в AI-агенте (если используется) — И ещё 12+ категорий уязвимостей. Отчёт: 2-3 страницы, на русском, без технического жаргона. Можно показать инвестору. Можно показать техническому партнёру.

Заключение

Я потерял базу. Мне повезло — это был тестовый проект. Но я видел истории, где слив данных стоил компаниям миллионы. Регулятор GDPR в ЕС: штраф до €20 млн или 4% выручки. В РФ: штрафы по 152-ФЗ до €300 000. Если вы собираете проекты на Cursor, Windsurf, Lovable или любом другом AI-инструменте — проверьте их перед запуском. Это стоит 5 минут и нескольких тысяч рублей. Потеря данных — стоит гораздо больше. → Попробовать
VibeCodeScanner

«Я собрал стартап на Cursor за вечер, а через месяц с него слили базу клиентов» — история + разбор уязвимостей
2
2 комментария