AI-генерируемый код повторя ет уязвимости, которые модель видела в обучающих данных. Три главных: незащищённые API-эндпоинты, доверие клиентским ролям и отсутствие санитизации ввода. Все три ловятся на этапе ревью.
Почему модели ошибаются одинаково
Большие языковые модели обучены на публичном коде. В нём много туториалов, где безопасность упрощена ради читаемости. Модель повторяет эти шаблоны и в вашем проекте. Итог: приложение работает, тесты проходят, а внутри - незакрытая дверь.
Кейс 1: открытая база подписчиков
Стартап собрал форму сбора email на Lovable. Через месяц конкурент выгрузил всю базу за пять минут: RLS на таблице `subscribers` был отключён, а anon-ключ лежал в клиенте.
Что было не так: ИИ создал таблицу без политик, а разработчик не проверил. Что помогло: включить RLS и оставить только INSERT-политику для анонов.
Кейс 2: админ-панель на клиенте
В приложении для внутренней команды роль пользователя проверялась в React: `if (user.role === 'admin')`. Любой пользователь мог отк рыть devtools и подменить состояние.
Что было не так: роль хранилась в профиле, а не в отдельной таблице user_roles с проверкой на сервере. Что помогло: вынести проверку в SECURITY DEFINER функцию и перепроверять на сервере.
Кейс 3: SQL через AI-чат
Приложение принимало запрос от пользователя и передавало его в RPC-функцию Supabase. ИИ сгенерировал функцию, которая выполняла произвольный SQL из аргумента.
Что было не так: отсутствие валидации, прямая передача пользовательского ввода в базу. Что помогло: переписать функцию с параметрами и типами, убрать динамический SQL.
Общие признаки уязвимого кода
- Работа с ролями и правами на клиенте.
- Отсутствие Zod-схем на входе Edge Functions.
- `service_role` ключ в переменных окружения фронтенда.
- Публичные функции без проверки JWT.
- Прямая передача пользовательского ввода в SQL или системные вызовы.
Как построить процесс ревью
- После каждой крупной AI-генерации пройтись по чек-листу безопасности.
- Раз в две недели прогонять сканер (например, встроенный в Supabase advisor).
- Держать список типовых промтов на аудит: "проверь, что RLS включён на всех таблицах".
Часто задаваемые вопросы
Можно ли попросить ИИ саму найти уязвимости?
Да, и она найдёт часть. Но полагаться на неё одну нельзя.
Есть ли автоматические сканеры под Lovable?
Встроенный security scanner Lovable + advisor Supabase покрывают базу. Для глубины - Snyk, OWASP ZAP.
Насколько это критично для маленького проекта?
Утечка email базы или платежных данных бьёт одинаково, независимо от размера проекта.
Рассылка
Лучшее о Lovable раз в неделю
Глубокие разборы, кейсы основателей и тактика роста. Без шума.
Никакого спама. Отписка в один клик.
Создавайте вместе с нами
Начать создавать с Lovable
Откройте Lovable, напишите первый промпт и запустите то, о чём давно думали.
Начать создавать с Lovable