Tracker Lab
Tracker Lab
@tracker_lab

Webhook security: подпись и валидация, без которой postback легко подменить

Webhook security: подпись и валидация, без которой postback легко подменить

Если webhook принимается без проверки, любой внешний запрос может сымитировать конверсию, лид или депозит. Базовый минимум — проверять три слоя: источник, подпись, содержимое.

— Источник: разрешай только нужные IP/ASN или хотя бы сетевой allowlist у прокси/файрвола.
— Подпись: HMAC по raw body с общим секретом, сравнение только в constant-time.
— Содержимое: проверяй timestamp, nonce/id запроса, обязательные поля и типы значений.

Частая ошибка — парсить JSON до проверки подписи и потом подписывать уже преобразованный объект. Подпись считают по исходному телу запроса, без нормализации, лишних пробелов и перестановки ключей. Если у тебя form-data или query string, фиксируй канонический формат заранее, иначе валидация будет ломаться на пустяках.

Отдельно следи за replay: один и тот же payload не должен засчитываться дважды. Для этого храни обработанные event_id или request_id с TTL и отклоняй повтор. Если webhook идёт через ретраи, делай обработку идемпотентной: один event = одна запись, повторный запрос = 200 OK без дубля в БД.

Практика простая: сначала verify, потом parse, потом apply. Если какой-то слой не проходит — логируй причину, но не раскрывай секреты и полные payload'ы в открытых логах.
Этот пост опубликован в Telegram-канале Tracker Lab. Подписаться можно по ссылке: @tracker_lab.
tech

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

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

start

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

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

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