brainax

Ключи и секреты

Урок 6 из 26 курса «Вайбкодинг: курс с нуля». Бесплатно, с анимациями и тестом.

Что такое API-ключ

API: способ, которым твоя программа общается с чужим сервисом, например с ИИ-моделью. API-ключ: пароль для этого общения. По нему сервис понимает, что запрос от тебя, и, если сервис платный, списывает деньги с твоего аккаунта. Ловушка: всё, что лежит в коде страницы, любой посетитель увидит через «Просмотр кода страницы».

Фронтенд и сервер

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

Никогда во фронтенде

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

Git помнит всё

Git: программа, которая хранит историю версий проекта. Каждое сохранение в нём называется коммитом. Ловушка в том, что Git помнит всё. Если ключ однажды попал в коммит, он остаётся в истории, даже если потом удалить его из файла. Поэтому файл с ключами вообще не должен попадать в Git. Как этого добиться, на следующем слайде.

Где хранить ключи

На своём компьютере ключи держат в файле .env: это простой текстовый файл с настройками. Его имя вписывают в .gitignore, список файлов, которые Git должен игнорировать. Так .env не попадёт в Git. На хостинге, то есть сервисе, где живёт твой сайт, ключи кладут в раздел секретов. Утёк ключ? Сразу отзови его в кабинете сервиса и создай новый.

Проверь себя

  1. Где можно хранить API-ключ?
    Правильный ответ: В секретах хостинга или в .env. Ключ не должен попадать в браузер и в Git. Спрятанный в коде страницы ключ всё равно виден через «Просмотр кода».
  2. Зачем .env добавляют в .gitignore?
    Правильный ответ: Чтобы ключи из .env не попали в Git. .gitignore говорит Git: этот файл не сохраняй. Так ключи не окажутся в истории проекта.
  3. Ключ случайно утёк. Первое действие?
    Правильный ответ: Отозвать его и создать новый. Ключ уже могли скопировать, и удаление или скрытие этого не отменит. Отозванный ключ перестаёт работать у всех.

← Сначала план: ТЗ на одну страницу Git: сохранения как в игре →