«Я собрал стартап на 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
Я не программист. Я не могу проверить код самостоятельно. Но я могу вставить ссылку на свой проект в VibeCodeScanner и получить отчёт за 5 минут. Сканер находит: — Курл-инъекции — Открытые базы данных — Утекшие API-ключи — Уязвимости в AI-агенте (если используется) — И ещё 12+ категорий уязвимостей. Отчёт: 2-3 страницы, на русском, без технического жаргона. Можно показать инвестору. Можно показать техническому партнёру.
Заключение
Я потерял базу. Мне повезло — это был тестовый проект. Но я видел истории, где слив данных стоил компаниям миллионы. Регулятор GDPR в ЕС: штраф до €20 млн или 4% выручки. В РФ: штрафы по 152-ФЗ до €300 000. Если вы собираете проекты на Cursor, Windsurf, Lovable или любом другом AI-инструменте — проверьте их перед запуском. Это стоит 5 минут и нескольких тысяч рублей. Потеря данных — стоит гораздо больше. → Попробовать
VibeCodeScanner