Безопасность день 1: секреты и .env

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

🎯 После урока сможешь: хранить секреты в .env, а не в коде.

Что такое секрет

Секрет — это то, что даёт доступ и не должно попасть чужим: токен бота, API-ключ, пароль базы данных. Если секрет утёк — им могут воспользоваться и потратить твои деньги или навредить клиенту.

Правило: секреты — в файл .env

Секреты складывают в отдельный файл .env (от «environment» — окружение). В коде их не пишут — код читает значения из .env.

BOT_TOKEN=сюда-твой-токен
API_KEY=сюда-твой-ключ
Файл .env со строками BOT_TOKEN и API_KEY (значения замаскированы).

Прячем .env от Git через .gitignore

Если проект попадёт в Git (например, на GitHub), .env не должен уехать вместе с ним. Чтобы Git его игнорировал, добавляют строку в файл .gitignore:

.env

Проверить, что .env действительно скрыт, можно командой:

git check-ignore .env
.env

Если команда вернула .env — значит Git его игнорирует, всё правильно. Пусто в ответ — .env ещё не в .gitignore, добавь строку.

Как передать проект клиенту: .env.example

Клиенту нужен сам проект, но не твои секреты. Поэтому рядом кладут .env.example — тот же список строк, но без значений. Клиент скопирует его в свой .env и впишет свои ключи.

Контрольный вопрос. Разбор чужой ошибки. Джун вписал токен прямо в код и печатает его в лог. Отметь ВСЕ проблемы.

Исходный код для этого задания:

BOT_TOKEN = "12345:AbCdEf..."
print("Запускаю бота с токеном", BOT_TOKEN)

Выберите все верные варианты.

АТокен вписан прямо в код — должен быть в .env
БТокен печатается в лог — секрет попадёт в логи
ВПроблем нет, так можно
ГЕсли код попадёт в Git, токен утечёт

Подсказка: Секрет не должен быть ни в коде, ни в логах, ни в репозитории.

Онлайн-проверка ответа появится позже

Контрольный вопрос. В какой файл кладут секреты (токены, ключи)? Впиши имя файла.

Подсказка: Короткое имя, начинается с точки, от слова «окружение».

Онлайн-проверка ответа появится позже

Контрольный вопрос. Какой файл прячет .env от Git, чтобы секрет не уехал в репозиторий? Впиши имя файла.

Подсказка: Тоже начинается с точки, в имени есть слово «ignore».

Онлайн-проверка ответа появится позже

Что дальше

Ты освоил главную привычку безопасности: секреты — в .env, .env — в .gitignore, клиенту — .env.example. Дальше подключим Claude API: получим ключ, отправим первый запрос и научимся считать, сколько это стоит.

Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева