← Все гайды

Вдвоём · Гайды

Как не слить ключи и пароли, когда вайбкодишь

⏱ 6-7 минут чтения 🔐 Безопасность
1
Прежде чем публиковать что-либо

Секрет - это не только пароль от почты

Когда ты собираешь свой первый бот или сайт вместе с Claude Code, у тебя быстро появляются вещи, которые нельзя показывать посторонним. Это не паранойя, а обычная техническая гигиена, которой не учат нигде, если ты пришёл в разработку без опыта.

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

  • Токен Telegram-бота, который ты получил у BotFather.
  • Ключ доступа к Claude, OpenAI или другому API нейросети.
  • Пароль и строка подключения к базе данных, например в Supabase или Postgres.
  • Ключи ЮKassa или другого платёжного сервиса.
Почему это серьёзно Если такой ключ окажется в открытом доступе, например в публичном репозитории на GitHub, его может найти не человек, а автоматический бот, который целыми днями сканирует чужой код именно в поисках таких строк. Дальше твоим ключом воспользуются раньше, чем ты вообще заметишь пропажу.
2
Разбираемся в коде

Где секреты обычно прячутся в проекте

Проблема редко в том, что человек специально выкладывает пароль в открытый доступ. Чаще секрет просто оказывается не в том месте, а дальше проект целиком уезжает на GitHub одной командой.

Самый частый вариант, когда секрет вписан прямо в код, потому что так было быстрее всего:

bot.py - так делать не стоит
cat bot.py
TOKEN = "8123456789:AAExampleRealLookingTokenHere12345"
# токен вписан прямо в файл, который сейчас уйдёт в git вместе со всем остальным

Правильный вариант, это когда сам код не содержит ни одного реального значения, а только ссылается на переменные, которые лежат отдельно, в файле .env:

bot.py - так надёжнее
cat bot.py
import os
TOKEN = os.getenv("BOT_TOKEN")
✓ реального значения токена в этом файле нет

Ещё один частый случай: секрет случайно оказывается в коде, который выполняется прямо в браузере пользователя, например во фронтенд-части сайта на React или Next.js. Такой код виден любому, кто откроет вкладку разработчика в браузере, поэтому туда можно класть только то, что не жалко показать всем.

3
Специфика вайбкодинга

Как агент может слить секрет, даже если ты не виноват

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

  • Если попросить агента «для отладки покажи содержимое .env», он честно выведет реальные значения прямо в чат.
  • Если потом скопировать кусок этой переписки в скриншот для форума, чата поддержки или соцсети, секрет уходит наружу вместе с картинкой.
  • Если попросить агента вставить ключ прямо в код «для быстрой проверки», а потом забыть убрать эту вставку перед публикацией проекта.
Правило на всякий случай Не проси нейросеть выводить содержимое .env или других файлов с секретами в чат без крайней необходимости. Если нужно проверить, что переменная вообще подхватывается, попроси агента написать проверку, которая выводит не сам ключ, а просто слово «найден» или «не найден».
4
10 минут один раз

Простое правило: .env и .gitignore

Эта связка не требует опыта программирования и защищает от большинства случайных утечек. Настраивается один раз в начале проекта.

  • Попроси Claude Code: «Создай файл .env в корне проекта и перенеси туда все ключи и токены, которые сейчас лежат прямо в коде».
  • Проверь, что в проекте есть файл .gitignore, и в нём есть строка .env. Если файла нет, попроси агента его создать.
  • Перед первой публикацией проекта на GitHub попроси: «Проверь весь проект и найди места, где могут быть захардкожены пароли, ключи или токены. Покажи мне список, ничего не удаляй сам».
  • Прочитай список сам, прежде чем соглашаться на любые правки, ты не обязан разбираться в коде построчно, достаточно понимать, что именно предлагается убрать.
Если файл .env есть, в .gitignore прописана строка .env, а в коде вместо реальных значений стоят обращения через os.getenv или похожий механизм, ты уже защищён от самой частой причины утечки.
5
Если что-то пошло не так

Ключ уже утёк. Что делать по шагам

Такое случается даже у опытных разработчиков, это не повод для паники, а обычная техническая задача с понятным решением.

  • Не трать время на попытки тихо всё исправить, сначала действуй, потом разбирайся, как это произошло.
  • Зайди в сервис, который выдал ключ, например в BotFather, консоль Anthropic или личный кабинет ЮKassa, и отзови старый ключ, создав новый.
  • Проверь логи использования сервиса за то время, пока ключ был в открытом доступе, не пользовался ли им кто-то посторонний.
  • Обнови новое значение ключа в своём файле .env, а старое нигде больше не используй.
  • Попроси Claude Code помочь разобраться, где именно в проекте остались следы старого ключа, это обычная рабочая задача, а не повод стесняться.
Важный нюанс с git Если ключ попал в коммит, простого удаления строки в новом коммите недостаточно: старая версия файла с ключом всё равно останется в истории репозитория, и её можно найти. Если проект уже был опубликован с секретом внутри, безопаснее считать этот ключ скомпрометированным и просто заменить его новым, чем пытаться вычистить историю.