Аптечка вайб-кода

Утёк API-ключ OpenAI или Supabase: что делать

Утёкший ключ нужно сразу отозвать и выпустить новый: удаление из кода не помогает, ключ остаётся в истории git и в уже скачанных копиях. Затем проверьте расходы и логи, перенесите вызовы платных API на сервер и настройте, чтобы секреты больше не попадали в репозиторий и в браузер.

Цена: от 110 000 ₸Срок: отзыв ключей сразу, аудит за 1 день
Спросить в WhatsApp
NUMETEKAIVA GROUPSAFIAHECTONEWTONEAsar SuJAILYSalt DasturMatras FactoryEcolosKvadrumNUMETEKAIVA GROUPSAFIAHECTONEWTONEAsar SuJAILYSalt DasturMatras FactoryEcolosKvadrum

Первая помощь и как чиним

  1. 1
    Отозвать ключ

    Удаляем скомпрометированный ключ в панели сервиса и выпускаем новый, кладём его только на сервер.

  2. 2
    Оценить ущерб

    Смотрим расходы и логи использования за период утечки, ставим лимиты трат.

  3. 3
    Убрать ключи из клиента

    Переносим вызовы OpenAI и секретные запросы на сервер или в edge-функцию.

  4. 4
    Почистить историю

    Решаем, нужна ли чистка истории git; если репозиторий был публичным, считаем ключ раскрытым в любом случае.

  5. 5
    Поставить защиту

    Сканирование секретов перед коммитом, .gitignore для .env, лимиты на эндпоинты с ИИ.

Честно

Чинить самому или отдать в «аптечку»

СамостоятельноС Emaya
ДиагностикаСпрашиваете ИИ — он чинит одно и ломает другоеНаходим корень проблемы за 1 день
БезопасностьНе знаете, утекли ли ключи и данныеАудит, ротация ключей, закрытые доступы
ДеплойЛокально работает, на хостинге — белый экранСервер, домен, HTTPS, мониторинг
КодНикто, кроме ИИ, не понимает, как это устроеноПорядок в коде и документация
БудущееКаждая новая функция — лотереяПроект можно спокойно развивать
ВремяНочи в консолиВы занимаетесь бизнесом, мы — кодом
Где спотыкаются чаще всего

Мы уже наступили на эти грабли — вам не придётся

⚠ Утечка ключей в git⚠ RLS в Supabase⚠ Белый экран после сборки⚠ Зависимости и версии⚠ Нет логов и мониторинга⚠ Хаос в структуре кода

Аптечка: что с проектом?

3 вопроса — и мы скажем, сколько стоит починка. Чек-лист безопасности проекта в подарок.

Как работаем
01Разбор

Интервью с собственником и РОПом, аудит текущей CRM и источников заявок.

1–3 дня
02Карта процессов

Воронки, роли, точки контроля. Согласуем до того, как что-то настраивать.

3–5 дней
03Сборка

Настраиваем Битрикс24 и дописываем недостающие инструменты. Демо каждую неделю.

1–4 недели
04Запуск и рост

Обучение, база знаний, поддержка. Дорабатываем, пока цифры не поедут вверх.

дальше — с вами
Подробнееразвёрнутое описание, этапы и нюансы

ИИ-инструменты часто вставляют ключ прямо в код: так быстрее заработало демо. Потом проект уходит в публичный GitHub или на хостинг, и ключ видит каждый, кто откроет исходник страницы. Хорошая новость: последствия почти всегда можно остановить за несколько минут, если действовать в правильном порядке.

Почему так происходит

  • Вызов OpenAI из браузера. Если запрос к API идёт прямо со страницы, ключ обязательно лежит в JavaScript, который скачивает посетитель. Префиксы VITE_ и NEXT_PUBLIC_ вшивают значение в сборку.
  • Секреты в репозитории. .env не добавлен в .gitignore, или ключ вписан строкой в конфиг.
  • Путаница ключей Supabase. У Supabase есть публичный ключ (anon или новый publishable) и секретный (service_role или новый sb_secret_...). Секретный обходит RLS и даёт полный доступ к базе. ИИ иногда подставляет его во фронтенд, «чтобы заработало».

Что проверить самому

  1. Отзовите ключ прямо сейчас. OpenAI: platform.openai.com → API keys → удалить ключ, создать новый. Поставьте лимит расходов в разделе Limits.
  2. Supabase. Если вы перешли на новые ключи, секретный sb_secret_... можно удалить и создать заново в Settings → API Keys. Утечка legacy-ключа service_role лечится сложнее: он подписан JWT-секретом, и его смена перевыпускает и публичный ключ, поэтому планируйте обновление клиента.
  3. Посмотрите Usage и логи за период утечки: всплески запросов, незнакомые модели, ночная активность.
  4. Найдите, где ещё живёт ключ:
git log -p -S "sk-" --all
grep -rn "service_role\|sb_secret_\|sk-" src/ dist/ .next/ 2>/dev/null
  1. Проверьте, что .env в .gitignore и его нет ни в одном коммите.
  2. Если ключ был в публичном репозитории, считайте его раскрытым даже после чистки истории.

Подробнее о хранении секретов — правило 5 в статье «Почему вайб-код ломается».

Когда звать разработчика. Отозвать ключ нужно самому и сразу, не дожидаясь никого. Дальше помощь пригодится, если ключ используется в нескольких местах и после замены что-то перестало работать, если утёк секретный ключ Supabase, если в логах видны чужие запросы к вашей базе или если нужно переносить вызовы ИИ из браузера на сервер. Утечка — повод проверить проект целиком: где был один ключ, часто найдутся и другие.

Как чиним мы

Если утечка свежая, помогаем отозвать ключи сразу, не дожидаясь договора. Затем проводим аудит: где ещё есть секреты, какие запросы идут из браузера, включён ли RLS. Переносим вызовы платных API на сервер или в edge-функцию с проверкой пользователя и ограничением частоты запросов, чтобы чужой скрипт не сжёг ваш бюджет. Настраиваем сканирование секретов перед коммитом и при необходимости чистим историю git. Подробности — на странице «Аптечка вайб-кода».

Сколько стоит

Диагностика — 50 000 ₸, аудит безопасности и вынос ключей — 60 000 ₸, итого от 110 000 ₸ для небольшого проекта. Если нужно переписать часть логики на сервер, добавляется доработка. Посчитать можно в калькуляторе.

Частые вопросы

Ключ был в репозитории всего час. Это опасно?

Да. Публичные репозитории сканируют боты, ключи находят за минуты. Отзывайте ключ в любом случае.

Anon-ключ Supabase виден в браузере — это утечка?

Нет, публичный ключ (anon или publishable) задуман для браузера. Он безопасен, только если на всех таблицах включён RLS с правильными политиками. Секретный ключ service_role или sb_secret в браузере — это утечка.

Достаточно ли удалить ключ из файла и сделать коммит?

Нет. Старый коммит с ключом остаётся в истории и в копиях репозитория. Ключ нужно отозвать в панели сервиса.

Сделаем так же у вас

Короткий созвон — и вы знаете срок и цену. Или посчитайте сами за 2 минуты.

WhatsApp
Другие проблемы, которые чиним
CORS-ошибка в проекте, написанном с ИИ →Аудит безопасности проекта на вайб-коде →Как настроить git и не терять рабочие версии проекта →Белый экран и ошибки в консоли →ИИ ломает код при каждой правке →Как добавить оплату в проект, сделанный с ИИ →Как настроить бэкапы базы данных →Как передать проект на вайб-коде программисту →Как подключить домен и HTTPS к своему проекту →Как задеплоить проект из Cursor на свой сервер →Проект на Next.js не собирается →Проект из Lovable не работает после экспорта →Перенос проекта с Bolt или Replit на свой сервер →Перенос проекта с Firebase или Supabase на свой сервер →Приложение тормозит после роста пользователей →Рефакторинг после вайб-кода: как сделать код поддерживаемым →Сайт работает локально, но не на хостинге →Ошибки Supabase RLS: база пустая или запись не проходит →Нет авторизации: любой видит чужие данные →
Напишите нам
Заявка

Обсудим задачу?

Ответим в течение часа в рабочее время. Или сразу напишите в WhatsApp.

Нажимая «Отправить», вы соглашаетесь на обработку контактных данных для ответа на заявку.

Пройти →