Секреты, .env и почему это важно
Самая частая и самая дорогая ошибка начинающих — утечка секретов. API-ключ от Claude в чате, пароль БД в git, токен в скриншоте. Один промах — потерял $1000. Сегодня разберём как не попасть.
Что такое секрет
Секрет — это любая строка которая даёт доступ от твоего имени:
- API-ключи (OpenAI, Anthropic, Stripe, Cloudflare, AWS, ...)
- Пароли от баз данных
- Личные токены GitHub, GitLab
- Webhook URLs со встроенным токеном (
https://hooks.slack.com/services/AAA/BBB/CCC) - SSH-ключи
- OAuth client secrets
Если кто-то получит твой секрет — он сможет делать действия от твоего имени. Через Claude API можно нагенерить контента на тысячи долларов за час. Через AWS-ключ — поднять майнеры на твоей кредитке.
Что такое .env
.env — это обычный текстовый файл с секретами, который лежит в папке проекта, но никогда не уезжает с ним.
ANTHROPIC_API_KEY=sk-ant-api03-abc123...
DATABASE_URL=postgresql://user:password@host:5432/db
STRIPE_SECRET_KEY=sk_test_xyz789...Программа читает значения из .env и использует их. Сам файл — только у тебя на компьютере и на сервере. В git его нет, в чате его нет, в скриншотах его нет.
Как защитить .env от git
В каждом проекте создай файл .gitignore со строчкой:
.env
.env.local
.env.production
.env.*.local
!.env.exampleGit будет игнорировать .env. Можно коммитить только .env.example — пустой шаблон без значений.
ANTHROPIC_API_KEY="your_key_here"
DATABASE_URL="postgresql://localhost/dev"Правила безопасности — выучи как мантру
- Секрет никогда не идёт в git. Проверяй
.gitignoreкаждый раз. - Секрет никогда не идёт в чат с AI — даже test-ключи. Привычка важнее технической безопасности.
- Секрет никогда не пересылается в Telegram, WhatsApp, Slack, email.
- Секрет никогда не попадает в скриншот (закрашивай или открывай в инкогнито).
- Если случайно куда-то отправил — сразу ротируй (получи новый ключ, старый аннулируй).
Если уже утёк
- Сразу иди в dashboard провайдера (Anthropic / OpenAI / AWS / etc.)
- Нажми «Rotate» или «Regenerate» — старый ключ перестанет работать
- Проверь биллинг — нет ли подозрительных трат за последние дни
- Если в git — нужно вычистить из истории (
git filter-branchилиgit filter-repo) - Извлеки урок — почему это случилось, чтобы больше не повторить
Где хранить .env
- На маке — просто файл в папке проекта
- На сервере — файл
/opt/<проект>/.env - Для команды — менеджер секретов (Doppler, Infisical, 1Password)
- Никогда — в публичном git, в Telegram, в чатах AI
Прошёл главу? Отметь — и продолжай.