Перейти к содержимому
>_ITDITDПлатформа веб-безопасности

Руководства по безопасности

Основы безопасности: чем на самом деле опасны .env и API-ключи

Первый шаг для инди-разработчиков, которые постоянно слышат «безопасность важна», но не знают, с чего начать. Что такое .env, что происходит при утечке API-ключа (со схемой потока) и минимум из четырёх привычек, которые можно завести сегодня — объяснено просто, без страха, на практике.

Опубликовано 2026-06-07 Обновлено 2026-06-07 4 мин чтения

«Постоянно слышу, что безопасность важна, но с чего вообще начать?» Это самый первый шаг для инди-разработчиков. Не чтобы напугать — только то, на что можно действовать сегодня, по порядку.

Почему начинать с «секретов»

Большинство реальных инцидентов начинаются не с изощрённых атак, а с утёкшего секрета. Оба случая, на которых построен этот сайт, были утечками секретов:

Защитите свои секреты — и предотвратите большинство частых инцидентов. Поэтому начинаем здесь.

Что такое .env (за 30 секунд)

.env — это файл, собирающий секретные значения вашего приложения: пароль базы данных, внешние API-ключи, ключ, шифрующий сессии. Поскольку ключи лежат вместе в одном файле, утечка проливает их все разом — поэтому это файл, который надо охранять первым (→ Глоссарий: Что такое .env).

Что означает утечка API-ключа

API-ключ — это «запасной ключ, чтобы пользоваться сервисом от вашего имени». В чужих руках он выстраивается в цепочку так.

① API-ключ утекает (публичная директория, коммит git или через уязвимость)
↓ с задержкой (дни+)
② Кто-то посторонний использует внешний сервис «от вашего имени»
③ Мошеннические счета / чтение-запись данных / выдача себя за вас
Сначала тихо. Используется с задержкой — а потом однажды всплывает счёт или взлом.

Украденные ключи часто перепродают и используют с задержкой — «сначала ничего не происходит, потом внезапный счёт» — классический паттерн. Поэтому «после того как заметите» уже поздно; суть в том, чтобы изначально не допустить утечки.

Четыре привычки, чтобы начать сегодня

Ничего сложного. Всего четыре.

1

Не выставляйте наружу

Никогда не помещайте .env или тело приложения в директорию, видимую из веба (веб-корень). Выставляйте только public/. Конкретные шаги для шаред-хостинга: это руководство.

2

Не коммитьте

Добавьте .env* в .gitignore (разрешив !.env.example); делитесь только обезличенным примером. Раз закоммитив, его можно восстановить из истории, так что держите его вне с самого начала.

3

Меняйте всё при утечке

Не только один ключ — меняйте каждый секрет, который мог утечь. По порядку: внешние API / OAuth → ключи шифрования → почта → БД. Действуйте так, будто их видели.

4

Самопроверка

Время от времени убеждайтесь, что /.env нельзя открыть снаружи (ниже).

Самопроверка (только против доменов, которыми вы владеете)

# 200 с телом означает, что выставлено наружу. 403/404 пока нормально.
curl -sI https://your-domain/.env | head -1
curl -sI https://your-domain/.git/config | head -1

Проверка этого при каждом деплое рано ловит ошибки размещения.

Частые ошибки против правильного первого шага

Частое

  • «Работает же», и .env кладут прямо под public
  • «Потом удалю», и .env один раз коммитят
  • Меняют только тот ключ, по которому видели злоупотребление

Правильный первый шаг

  • Тело приложения вне веб-корня, выставлять только public/
  • Исключить .env через .gitignore с самого начала
  • При утечке сменить каждый секрет в окружении

Следующие шаги

Дальше следующие темы — «рискованные значения по умолчанию в вашем стеке» и «система, чтобы не отставать от опубликованных CVE». Не спешите, по одной за раз.

Читать дальше

FAQ

QС чего начать в безопасности?
A

С того, чтобы не допускать утечки своих секретов (.env и API-ключей). Большинство реальных инцидентов начинаются там. Не выставляйте их наружу, не коммитьте в git, при утечке меняйте всё, и время от времени самопроверяйтесь — это предотвращает большую часть.

QЧто конкретно происходит при утечке API-ключа?
A

Кто-то может действовать от вашего имени по отношению к внешнему сервису. Частые исходы — мошеннические счета (тяжёлое использование списывается на вас) и чтение/запись ваших данных. Украденные ключи часто перепродают и используют с задержкой.

QМожно ли класть .env в git?
A

Нет. Добавьте .env* в .gitignore и делитесь только обезличенным .env.example. Раз закоммитив, его можно восстановить из истории git даже после того, как вы позже удалите.