Перейти к содержимому

Безопасность и замена ключей

Ваш API-секрет подписывает запросы, которые двигают деньги. Обращайтесь с ним как с паролем от базы данных.

  • Храните MKA_SECRET в хранилище секретов или в окружении сервера — никогда в репозитории, браузере, мобильном приложении или логе.
  • Запросы подписывает только ваш сервер. Браузер плательщика никогда не обращается к API: вместо этого отправьте плательщика на checkout_url.
  • Консоль показывает секрет один раз и хранит его в зашифрованном виде; никто — и мы тоже — не может показать его снова.
  • Маскируйте ключи в логах: ключ (mka_…) может там быть; секрет, входные данные подписи и тело запроса на выплату — нет.

Создайте ключ для каждой системы, которая обращается к API, и назовите его по ней. Тогда утечка стоит одного ключа, а журнал консоли показывает, какой ключ что сделал: каждая команда записывается вместе с ключом.

В разделе «Разработчикам» → «API-ключи» кнопка «Заменить» выпускает новый ключ и секрет. Новый работает сразу, старый — ещё 24 часа. Разверните новую пару, убедитесь, что запросы с ней проходят, затем нажмите «Остановить сейчас» у старого — или дождитесь, пока истекут его сутки.

«Отозвать» останавливает ключ сразу: каждый запрос с ним получает 401. Затем создайте новый ключ для этого сервера. Если секрет могли увидеть, проверьте также журнал и последние выплаты.

Секрет вебхуков (whsec_…) подтверждает, что событие пришло от нас. Храните его так же. Чтобы сменить его, выполните смену секрета: до суток события подписываются обоими секретами, поэтому вы переключаетесь, не теряя ни одного.

Ключи песочницы (mka_test_) и боевые ключи (mka_) разделены, и каждый работает только на своей установке. Держите их в разных окружениях вашего развёртывания, чтобы тест никогда не мог использовать боевой ключ.