🛡️Безопасность

Мы прикладываем много усилилий для того, чтобы ваши средства были защищены от злоумышленников. Тем не менее, вам также требуется выполнить ряд действий для обеспечения защиты с вашей стороны
1. Обязательное использование SSL
Если вы не пользуетесь SSL, то весь трафик идет через сеть открытым текстом и потому может быть перехвачен злоумышленником. Чтобы избежать этой утечки, нужно обязательно использовать https, а не http.
Однако что более важно - обязательная проверка сертификата. С помощью атаки Man-In-The-Middle, мошенники могут попытаться перехватить ваш трафик. Это невозможно, если стоит проверка сертификата. Однако если ваш разработчик установит игнорирование проблем с сертификатом, то ваш трафик может оказаться под угрозой компроментации
2. Токен авторизации
Все запросы по API должны содержать токен авторизации, который идентифицирует вас как клиента и дает права на выполнение тех операций, которые вам доступны.
Токен авторизации указывается в виде bearer-значения для заголовка Authorization, вот пример:
curl --request POST \
--url https://admin.vanilapay.com/api/v2/deposit \
--header 'Authorization: Bearer ****' \
...
Если токен указан не корректно или сайт еще не активирован, то вы получите ошибку HTTP 401 Unauthorized.
Токен авторизации индивидуален для каждого сайта и его можно увидеть\изменить именно в карточке сайта, на вкладке API.

После того как нажать на “Сменить токен” у вас появится окно, которое попросит подтверждения, а уже после этого появится окно с новым токеном. Это единственная возможность его скопировать, так что скопируйте и запишите у себя.
Внимание!!! Если токен указан некорректно, все запросы к апи будут возвращать ошибку HTTP 401 с телом ответа
{ “error”: ”Сайт не найден” }
3. Подпись запросов
Передача токена в заголовке Authorization это отраслевой стандарт безопасности для авторизации, однако часть клиентов захотела еще большей безопасности, потому была добавлена подпись запросов.
Подпись запросов является опцией и ее можно включить в настройках сайта по вашему желанию.

Подпись запросов подразумевает что вы неким образом формируете уникальный отпечаток той информации, которую отправляете нам, и мы можем удостовериться что этот запрос послали именно вы, а не злоумышленник, который каким-то образом смог добраться до вашего апи токена.
Для формирования подписи требуется
создать строку из пути запроса ( начинается с /api/ ) и тела запроса ( если имеется )
обработать полученную строку с помощью HMAC с алгоритмом SHA512 и токеном для подписи запроса в качестве секрета для этого алгоритма
указать полученное значение в заголовке Signature
Пример формирования подписи
#example with body
$body = '{"method": "wallet", "amount": "50.00", "order_id": "12345"}';
$signature = hash_hmac('sha512', '/api/v2/deposit' . $body, 'your_key');
#example with query params and without body
$signature = hash_hmac('sha512', '/api/v2/transactions?sort=id', 'your_key');
Допустим вы вычислили подпись и она равна 1234567890. В этом случае запрос будет выглядеть следующим образом
curl --request POST \
--url https://admin.vanilapay.com/api/v2/deposit \
--header 'Authorization: Bearer ****' \
--header 'Signature: 1234567890' \
--header 'Content-Type: application/json' \
...
4. Белый список айпи для доступа к API
Дополнительной опцией по безопасности является настройка белого списка айпи для доступа к API. Ранее у нас был такой список только на выводы, но в текущей версии API у нас есть отдельный список, который работает на все запросы к апи.
Настраивается этот список в карточке сайта, в разделе API

Внимание!!! Если запрос прийдет с айпи, которого нет в списке, в ответ будет возвращаться ошибка HTTP 401 с телом ответа
{ “error”: ”Сайт не найден” }
Last updated