Почему код с ИИ опаснее «медленного» джуна
Cursor, ChatGPT и Copilot ускоряют разработку в разы. Но скорость без владения diff — другая проблема: за вечер появляется функционал, который ты не сможешь объяснить на созвоне с заказчиком. Это не страшилка про «ИИ всё сломает» — это про реальные дыры, которые я вижу в pet-проектах, ботах и мелком SaaS.
1. Большой diff за один сеанс
Джун пишет медленно — и успевает заметить странное. ИИ выдаёт сразу контроллер, middleware, миграцию и три теста. Поверхность атаки растёт быстрее, чем твоё понимание «где тут граница доверия».
2. Опасные дефолты из обучения модели
Модель любит «рабочие» примеры из туториалов:
DEBUG=TrueилиAPP_DEBUG=1в конфиге- CORS «разрешить всем» (
*) - SQL через конкатенацию строк «для простоты»
- JWT без срока жизни или с секретом
secretв репозитории - Админка без второго фактора «пока для MVP»
Локально всё зелёное. На проде — открытая дверь.
3. Секреты утекают в чат и в коммиты
Классика vibe-coding: вставил кусок .env в промпт «почини SMTP» — ключ уже в истории чата провайдера.
Или модель «для удобства» положила API-ключ прямо в код.
# перед каждым пушем — минимум:
git diff --staged | grep -iE '(password|secret|api_key|token|BEGIN (RSA )?PRIVATE)'
Подробный чеклист — в 15 минут перед продом.
4. «Зелёные тесты» ≠ безопасность
ИИ часто генерирует тесты на happy path. Они не ловят:
- доступ к чужому заказу по подмене
idв URL; - эскалацию «обычный пользователь → админ»;
- утечку полей в JSON-ответе API.
Unit-тесты прошли — продукт всё равно может быть дырявым. Про AuthZ отдельно: «чужой id».
5. Ложное спокойствие
«Модель же умная» — худший аргумент на ретроспективе после инцидента. ИИ не несёт ответственность перед заказчиком и регулятором. Несёшь ты.
Правило, которое реально работает
6. Ритуал перед продом
Не нужен enterprise AppSec. Нужен повторяемый gate:
- 15 минут по чеклисту (секреты, зависимости, debug);
- ручная проверка «могу ли я увидеть чужие данные» — AuthZ;
- мониторинг и алерты, когда продукт уже в бою — чтобы не узнавать о падении от пользователя.
Когда код уже на сервере
Baseline кода не заменяет мониторинг: 502, диск, SSL, доступность сайта — Mediops шлёт алерт в Telegram или MAX до звонка клиента.