Что такое API-ключ и как его безопасно хранить

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

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

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

Хорошая практика — разделять ключи. Отдельный ключ для тестовой среды и для боевой, отдельные ключи для разных сервисов, чтобы при утечке отозвать один, не останавливая всё. Если сервис позволяет ограничить права ключа или IP-адреса, с которых его можно использовать, этим стоит пользоваться. И не забывайте ротацию: ключ бывшего сотрудника или старого подрядчика должен быть отозван.

При подозрении на утечку действуйте сразу: создайте новый ключ, замените его на сервере, отзовите старый и проверьте журнал операций за период. Опасные операции — выводы средств — разумно защищать не только ключом, но и вторым фактором, чтобы украденный ключ сам по себе не позволял вывести деньги.

В Moonvex API-ключ создаётся в кабинете в разделе интеграции, webhook можно проверить кнопкой «Отправить тест», а выплаты дополнительно подтверждаются 2FA.

Правила работы с API-ключами

  • Только на сервере, никогда в браузере или клиентском приложении.
  • Не коммитить в репозиторий, даже приватный.
  • Разные ключи для тестовой и боевой среды.
  • Регулярно отзывать неиспользуемые ключи.

Частые вопросы

Можно ли использовать API-ключ во фронтенде?

Нет. Всё, что попадает в браузер, может прочитать пользователь. Запросы к API делайте с вашего сервера.

Что делать, если ключ попал в публичный репозиторий?

Немедленно отозвать его и создать новый. Удаление коммита не помогает: ключ мог быть уже скопирован.

Чем API-ключ отличается от секрета вебхука?

API-ключ подтверждает ваши запросы к сервису, а секрет вебхука — запросы сервиса к вам. Это разные секреты с разными задачами.

Где это пригодится

Связанные термины

Начните принимать оплату сегодня

Аккаунт и первый проект за минуту, без абонентской платы.

Создать аккаунт