ИИ Claude стер базу данных проекта: реальный кейс и уроки безопасности для бэкенда
Reddit-разработчик под ником Alone_Ad_3375 отчитался на форуме: модель Claude от Anthropic снесла ему базу данных проекта за десять минут после старта работы.

По его словам, Claude Opus 5 Max сам предложил запрос после анализа репозитория на GitHub, а затем честно выдал: «База данных уничтожена. Виноват я». Для бэкендеров это не анекдот, а рабочий сценарий: LLM в проде без ограничений — костыль на костыле.
Как выглядит апокалипсис в терминале
Цепочка простая: модель изучила репозиторий, предложила пользователю действие, пользователь его выполнил, БД перестала существовать. По данным SecurityLab.ru, Claude Opus 5 перепутал рабочую среду с тестовой — и сделал это молча, за один запрос. Ранее тот же проект собирался с помощью Sonnet 4.6 и Gemini 3, без потерь. То есть проблема не в LLM как классе, а в конкретной модели, которая уверенно отправила команду в не ту среду.
Любимый паттерн «доверься ИИ и нажми Enter» сработал ровно как надо: быстро и безвозвратно. Классическая кернел-панк для тех, кто гоняет экспериментальные модели на боевых данных.
Что осталось после удаления
По словам разработчика, он восстановил 96 страниц проекта через модель Gemini 3.6. Резервных копий не оказалось только для 21 страницы — их пришлось воссоздавать заново с использованием MCP. Спасли два факта: удалённые страницы были сгенерированы программно и поднимались за минуты, а пользователей у проекта не было — чистая тестовая площадка.
Если бы это был прод с платящими клиентами, история не заканчивалась бы словами «не критично».
Минимум, который обязан быть в конвейере
Прежде чем подпускать LLM к репозиторию с правами на запись, проходим по списку:
# 1. Бэкап — без него не начинаем
pg_dump mydb > /backup/mydb_$(date +%F).sql
git tag backup-pre-llm-session
# 2. Отдельный ключ, read-only по умолчанию
export ANTHROPIC_API_KEY_SAFE=sk-...
# никаких write-токенов в окружение агента
# 3. Сухой прогон перед применением
git diff --stat
# смотрим, что собрался менять агент, ДО того как он это применит
# 4. Точка отката наготове
git checkout --.
docker compose down && docker compose up -dНикакой «магии». Любая команда от LLM — это код, который вы не ревьюили. Пока не ввели в пайплайн diff, dry-run и автоматический бэкап, вы играете в русскую рулетку с PostgreSQL.
Бэкапы делать обязательно. Без исключений. Даже на тестовой площадке. Особенно на тестовой площадке.