Почему код от ИИ обязательно проверять человеку (и это нормально)

Почему код от ИИ обязательно проверять человеку (и это нормально)

Май 11, 2026 ai development application security code review best practices owasp vulnerabilities vibe coding authorization bugs secure coding devops technical debt

Почему код от ИИ обязательно нужно проверять человеку (и это нормально)

Сейчас в разработке софта творится настоящая революция. Claude, ChatGPT и умные IDE на базе агентов позволяют превращать идею в рабочий код за пару дней, а не недель. Опиши фичу, прими изменения, доработай — и готово. Скорость растёт взрывно.

Но есть подвох.

Недавно я разбирал такой код: простой внутренний инструмент, не супер-критичный, но типичный для 2024 года. Ничего страшного вроде "ИИ взбунтовался" не случилось. Просто 28 ошибок, в основном по безопасности. И почти все — из старых категорий OWASP Top 10, которые висят там с нулевых.

Это не про опасности ИИ. Это про то, как молниеносная скорость фич обгоняет размышления о том, чтобы эти фичи не стали бомбой замедленного действия.

Проблема не в ИИ, а в вопросах, которые ты не задал

Код выглядел круто. Архитектура логичная, компоненты разложены грамотно, библиотеки выбраны верно. Если бы я сам слепил такое за выходные, разница была бы незаметна.

Разница в другом слое. В том, что происходит до первой строки кода.

ИИ мастерски выполняет задачу. "Сделай систему управления пользователями" — и вот она готова. Но он не спросит сам: кто имеет доступ? Какие данные чувствительные? Где аутентификация? Что если обойти фронт?

ИИ выдаёт фичу. Без архитектуры безопасности, от которой можно спать спокойно.

Пример из жизни: админ-функция без защиты

Представь: serverless-функция для админки — создание юзеров, сброс паролей, удаление аккаунтов. Обычное дело. Команда правильно спрятала мощные ключи на сервере, не в браузере.

Но проверки аутентификации в функции — ноль.

Не слабая, не неправильная. Совсем никакой. Любой с DevTools найдёт endpoint, кинет POST — и создаст админа, сольёт пароли или сотрёт базу.

На фронте кнопка админки скрывалась для не-админов. Всё выглядело безопасно. И было бесполезно — UI-защита это иллюзия.

Классический обход авторизации, в списках уязвимостей с 2003-го. Почему ИИ не заметил? Промпт был: "сделай функцию для админов по созданию юзеров". Она это делает. И для не-админов тоже — потому что не сказано обратного.

Суть: ИИ не угадывает твои упущения.

База данных, безопасная на словах

Ещё один случай. БД с row-level security — крутая штука, ограничивает доступ к строкам по ролям. Идеально, когда фронт шлёт API-ключ в JS.

Инженер попросил ИИ добавить мультиюзерность. ИИ написал миграции, создал таблицы с RLS. Отлично.

Но пять старых таблиц с реальными данными — нет. RLS там могла быть, могла нет. Миграция не проверила, не включила, не напомнила.

Запусти npm run db:push на чистой инфе — новые таблицы в замке, старые нараспашку для всех с доступом к API.

ИИ не ошибся. Просто решил узкую задачу, не спросив: "а всё остальное защитить?"

Что менять в своей практике

Это не призыв бросить ИИ. Скорость — золото. Но нужен контроль: опытные инженеры смотрят на архитектуру, а не только на синтаксис.

Что работает:

Составь чеклист по безопасности до старта. Кто зовёт endpoint? Что если без прав? Данные для всех? RLS на всех таблицах? Фиксируй предположения заранее, не в ревью.

Старшие делают threat modeling, а не ковыряют строки. Мои 28 багов — не опечатки. Архитектурные промахи. ИИ генерит код, люди думают о рисках.

Уточняй auth/authz в промптах. Не "endpoint для юзеров", а "endpoint для юзеров только для залогиненного админа, опиши предположения по auth". ИИ покажет логику.

Тестируй авторизацию отдельно. Проверяй, что без прав — ничего не выйдет. Не только что с правами работает.

Главный паттерн

ИИ не пишет уязвимый код. Он идеально делает то, что просишь. И пропускает то, о чём не спросил.

Это плюс, а не минус — инструмент послушный, не выдумывает. Но ответственность на тебе. ИИ исполняет твои решения по безопасности в масштабе.

В том коде человеку хватило сказать "endpoint без auth". Фикс — минуты. Старая дыра 20 лет встретила workflow 2024-го — и workflow победил. Благодаря вниманию опытного.

Так и будет дальше: ИИ для скорости, люди для архитектуры. Оба нужны.


Хочешь избежать таких ловушек в проекте? В NameOcean мы помогаем растущим стартапам с доменами и хостингом, где безопасность встроена в основу. Наш cloud hosting с rate limiting, управлением API-ключами и аудитом работает из коробки — даже если команда спешит и забывает. Один пункт меньше в списке забот.

Read in other languages:

BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA ZH-HANS EN