Каждый входящий запрос содержит заголовок X-Webhook-Signature — это HMAC SHA-256 подпись тела запроса, созданная с помощью вашего секретного ключа. Зачем проверять: без этого любой может отправить запрос на ваш сервер и притвориться Sasha AI.

Заголовки запросов

Алгоритм проверки

1

Возьмите тело запроса как строку

Получите исходное тело запроса до парсинга JSON
2

Посчитайте HMAC SHA-256

Вычислите HMAC SHA-256 с вашим секретным ключом, результат — hex-строка
3

Сравните с заголовком

Сравните вычисленную подпись с полученной в заголовке X-Webhook-Signature, используя безопасное сравнение строк

Примеры кода

Используйте сравнение строк, устойчивое к time-based атакам (например, crypto.timingSafeEqual() в Node.js, hmac.compare_digest() в Python или hash_equals() в PHP).