Вайб-кодинг и ИИ 2026-10-10 7 мин ЧТЕНИЯ

Безопасность сайтов на вайб-кодинге: уязвимости проектов из Lovable, Bolt, Cursor и v0

Почему веб-приложения, созданные нейросетями и вайб-кодингом, уязвимы из коробки. Утечки API-ключей в клиентском JS, отключенный Supabase RLS и как защитить проект перед релизом.

S Автор: Команда Site Check Security

Взрывной рост популярности инструментов вайб-кодинга и ИИ-конструкторов (Lovable, Bolt.new, Cursor, v0.dev) позволил предпринимателям и создателям продуктов запускать полноценные SaaS-сервисы и веб-приложения за считанные часы без глубоких знаний в программировании. Однако скорость прототипирования создала колоссальную проблему: генерируемый код практически никогда не проходит аудит информационной безопасности.

Большинство создателей таких приложений даже не подозревают, что сгенерированный ИИ фронтенд на React или Next.js может содержать секретные токены OpenAI или Stripe прямо в скомпилированном бандле, а подключенная база данных Supabase отдает персональные данные пользователей любому желающему из-за отсутствия базовых политик разграничения доступа.

1. Главная угроза: утечка приватных API-ключей в клиентский JavaScript

Когда вы просите ИИ-ассистента подключить генерацию текста через OpenAI или обработку платежей через Stripe, нейросеть часто пишет прямой вызов API прямо внутри React-компонента. При сборке проекта ключ попадает в публичные файлы .js, доступные через вкладку Network любого браузера. Злоумышленники используют автоматические сканеры, выкачивают ваши токены и выставляют вам счета на тысячи долларов за генерации в считанные часы.

Обратите внимание: Никогда не используйте переменные окружения с префиксами NEXT_PUBLIC_ или VITE_ для хранения секретных ключей. Все приватные вызовы внешних сервисов должны идти исключительно через серверные Edge Functions или собственный бэкенд.

2. Базы данных Supabase и Firebase с отключенным RLS

Вайб-кодеры часто подключают облачные базы данных напрямую к фронтенду с помощью публичного URL и ключа anon_key. Если в таблицах Supabase не включен механизм Row Level Security (RLS) и не настроены правила доступа, любой посетитель сайта может выполнить прямой REST-запрос к СУБД и скачать полную базу зарегистрированных пользователей с адресами и перепиской.

Пример правильного включения Row Level Security в Supabase SQL Editor
                  -- Обязательная команда для каждой публичной таблицы Supabase:
ALTER TABLE profiles ENABLE ROW LEVEL SECURITY;

CREATE POLICY "Users can only read own profile"
ON profiles FOR SELECT
USING (auth.uid() = user_id);
                

3. Оставленные Source Maps (.map) в продакшне

По умолчанию многие сборщики оставляют генерацию Source Maps включенной. Это позволяет любому технически подкованному злоумышленнику открыть вкладку 'Sources' в DevTools браузера и увидеть исходную структуру вашего проекта на TypeScript вплоть до комментариев разработчика и внутренних системных эндпоинтов.

4. Как протестировать безопасность проекта перед запуском рекламы

Перед тем как привлекать первых платящих клиентов или запускать трафик, обязательно проведите аудит по чеклисту: 1) Убедитесь, что ни один секретный токен не светится в сетевых запросах; 2) Проверьте, включен ли RLS на всех таблицах базы данных; 3) Запустите глубокий аудит Site Check, чтобы убедиться в отсутствии стандартных уязвимостей развертывания.

Чек-лист безопасности для разработчика

  • ✓ Проверить бандл сборщика на отсутствие ключей sk-...
  • ✓ Включить Row Level Security (RLS) на всех таблицах Supabase
  • ✓ Отключить генерацию .map файлов в продакшн-конфигурации
  • ✓ Закрыть доступ к файлам .env и .git на веб-сервере
  • ✓ Прогнать домен через глубокий аудит безопасности Site Check

Резюме и ключевые выводы аудитора безопасности

При запуске веб-сервисов и приложений на базе современных фреймворков (Next.js, Astro, React, Supabase) безопасность периметра не должна быть второстепенным этапом. Более 85% утечек конфиденциальных данных и взломов баз данных происходят не из-за изощрённых уязвимостей нулевого дня (0-day), а по причине тривиальных ошибок конфигурации: забытых тестовых эндпоинтов, открытых файлов окружения, некорректных правил CORS и отсутствия строгих политик разграничения доступа (RLS).

Регулярный превентивный аудит внешнего контура с помощью Site Check позволяет обнаружить опасные сигнатуры за считанные секунды и закрыть векторы атак до того, как они попадут в поле зрения автоматизированных ботнетов.