Автоматизация на вебхуках

HMAC без валидации — это просто HTTP с надеждой на удачу

HMAC без валидации — это просто HTTP с надеждой на удачу

Смотрим в тело запроса: подпись считается не по «почти такому же JSON», а по байтам, которые реально пришли. Любая перекодировка, лишний пробел или перестановка полей ломают проверку. Поэтому хук надо принимать как сырой payload, а не как уже распарсенный объект.

Базовый пайплайн простой:
• берём raw body;
• считаем HMAC на сервере тем же алгоритмом и ключом;
• сравниваем с заголовком через constant-time compare;
• отклоняем запрос при любой расхожести.
Если сравнивать через обычное `==`, вы сами создаёте тайминг-дыру. Да, она иногда выглядит «теоретической», пока в проде не появляется любопытный атакующий.

Отдельно проверяйте:
• timestamp в подписи, чтобы отрезать replay;
• допустимое окно по времени;
• ротацию секрета без даунтайма;
• логирование только хеша payload, не самого секрета.
Идемпотентность — это не роскошь, а база: даже валидный webhook может прилететь повторно после ретрая у отправителя.

Хороший хендлер делает только три вещи: валидирует подпись, быстро кладёт событие в очередь и отвечает 2xx. Всё остальное — в асинхронный пайплайн. Ловим 5xx на ровном месте, если пытаемся тяжёлую бизнес-логику выполнять до проверки подписи и записи в очередь.
Этот пост опубликован в Telegram-канале Автоматизация на вебхуках. Подписаться можно по ссылке: @webhook_automation_hub_arb.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.