Fiatside

Developers

Аутентификация

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

01

Сегодня

Конечная точка котирования открыта и не требует ключа. Этот выбор оправдан: котировка не читает и не записывает персональные данные, а интеграция должна иметь возможность показать цену до создания аккаунта.

Чего ещё нет

Никакого ограничения частоты запросов на этой конечной точке сегодня не применяется. Мы предпочитаем написать это, чем показывать таблицу квот, которая не соблюдается: в день, когда лимит появится, он будет опубликован здесь со своими значениями, заголовками ответа и кодом, возвращаемым при превышении.

02

Ключи, как только они будут выпущены

Ключ содержит свою среду в префиксе. Тестовый ключ, который работал бы в производстве, был бы конструктивным недостатком: он делает возможным реальный перевод, который вы думали, что имитируете.

Заголовокhttp
Authorization: Bearer sk_live_9f2c4b1e8a7d3f60c5b2a1e9d8c7b6a5
Ключи, как только они будут выпущены
ПрефиксСредаЧто она позволяет
sk_test_ПесочницаВсе операции на симулированных данных. Никакого реального движения средств, никаких обращений к платёжному институту. Задержки каналов симулированы, поэтому ваши тесты сталкиваются с теми же ожиданиями, что и в продакшене.
sk_live_ПродакшенРеальные операции. Заказы, созданные с этим ключом, перемещают деньги: он никогда не должен покидать ваш сервер.
whsec_ОбаСекрет подписи вебхуков. Он никогда не используется для вызовов API: он только проверяет, что получаемое вами действительно исходит от нас.
03

Правила обращения

Ни одно из них не оригинально. Все они регулярно нарушаются, и именно так ключи утекают.

Только на стороне сервера

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

Никогда в URL

Будучи параметром запроса, ключ попадает в журналы серверов, заголовки referrer и историю браузера. Заголовок Authorization существует именно для этого.

Один ключ на интеграцию

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

Немедленный отзыв при любых сомнениях

Ключ, случайно отправленный в репозиторий, даже частный, даже удалённый позже, скомпрометирован: история хранит его, а краулеры читают публичные репозитории в течение минут.

04

Ротация без простоев

Два одновременно действительных ключа позволяют ротацию без окна недоступности.

  1. 1.Выпустите второй ключ. Оба действительны одновременно.
  2. 2.Разверните новый ключ на ваших серверах, по одному за раз.
  3. 3.Убедитесь, что новый ключ получает трафик, а старый — нет.
  4. 4.Отзовите старый. Отзыв немедленный, без льготного периода.
05

Чего мы никогда не сделаем

  • Мы никогда не попросим ваш ключ по электронной почте, в чате или по телефону. Поддержке он не нужен: она работает с идентификатором ключа, а не с секретом.
  • Мы никогда не показываем секретный ключ дважды. Он виден при создании, затем только его идентификатор и последние четыре символа.
  • Мы не отправляем ключи по электронной почте. Электронная почта проходит через слишком многие стороны и хранится ими.