Что такое API-ключ и как его безопасно хранить
API-ключ — секретная строка, по которой сервис узнаёт ваше приложение и разрешает ему выполнять операции от имени вашего аккаунта.
Когда магазин создаёт платёж или выплату через API, сервису нужно понять, кто делает запрос. Для этого используется API-ключ: его передают в заголовке каждого запроса, и сервис по нему определяет проект и права. По сути это пароль для программ, а не для людей, и обращаться с ним нужно так же строго.
Ключ хранится только на сервере. Его нельзя вставлять в код фронтенда, мобильного приложения или Telegram-бота, который распространяется пользователям: любой, кто откроет код, получит доступ к вашему аккаунту. Правильные места — переменные окружения сервера, менеджер секретов, зашифрованное хранилище. В репозиторий ключ не коммитят, даже в приватный: истории репозиториев утекают чаще, чем кажется.
Хорошая практика — разделять ключи. Отдельный ключ для тестовой среды и для боевой, отдельные ключи для разных сервисов, чтобы при утечке отозвать один, не останавливая всё. Если сервис позволяет ограничить права ключа или IP-адреса, с которых его можно использовать, этим стоит пользоваться. И не забывайте ротацию: ключ бывшего сотрудника или старого подрядчика должен быть отозван.
При подозрении на утечку действуйте сразу: создайте новый ключ, замените его на сервере, отзовите старый и проверьте журнал операций за период. Опасные операции — выводы средств — разумно защищать не только ключом, но и вторым фактором, чтобы украденный ключ сам по себе не позволял вывести деньги.
В Moonvex API-ключ создаётся в кабинете в разделе интеграции, webhook можно проверить кнопкой «Отправить тест», а выплаты дополнительно подтверждаются 2FA.
Правила работы с API-ключами
- Только на сервере, никогда в браузере или клиентском приложении.
- Не коммитить в репозиторий, даже приватный.
- Разные ключи для тестовой и боевой среды.
- Регулярно отзывать неиспользуемые ключи.