Security & Risks

Уязвимости в AI-сгенерированном коде: разбор реальных кейсов

Три реальные истории, когда приложения на AI-билдерах ломались из-за типовых ошибок. И как этих ошибок избежать.

Lovable AI Review Editorial Desk
Lovable AI Review Editorial Desk
Editorial
8 июля 2026 г. 8 мин чтения
Уязвимости в AI-сгенерированном коде: разбор реальных кейсов
Коротко

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