Webhook без подписи — это не интеграция, а открытая дверь в трекер
Проверка входящего webhook должна начинаться не с парсинга JSON, а с валидации источника. Минимум: HMAC-подпись, timestamp и anti-replay. Если у события нет подписи — сразу 403, без попыток «разобрать потом».
Рабочий чек-лист:
— сравнивай подпись через constant-time compare
— принимай только свежий timestamp, с узким окном
— храни nonce/event_id, чтобы не обработать дубль
— не доверяй IP whitelist как единственной защите
— логируй причину отказа отдельно от бизнес-логики
Типовая ошибка — валидировать только тело запроса. Любая перестановка полей, пробел или другой порядок сериализации ломает подпись, если схема не зафиксирована. Для этого нормализуй payload или используй канонический формат, который описан у вендора, а не «как пришло».
Если webhook шлёт postback в трекер, отдели проверку подписи от создания конверсии: сначала auth, потом маппинг, потом запись. Иначе любой мусорный запрос будет засорять атрибуцию и ломать отчёты.
Tracker Lab
@tracker_lab
Webhook без подписи — это не интеграция, а открытая дверь в трекер
Этот пост опубликован в Telegram-канале Tracker Lab. Подписаться можно по ссылке: @tracker_lab.