Webhooks и интеграции
Проверьте подпись webhook
Вычисляйте подпись по сырому телу запроса, до любого разбора JSON, и сравнивайте за постоянное время. Повторная сериализация payload меняет байты, и подпись уже никогда не совпадёт.
Шаги
- Возьмите сырое тело как байты. Большинство фреймворков по умолчанию отдают уже разобранный объект, и это поздно.
- Вычислите подпись именно по этим байтам, используя секрет вашего endpoint.
- Сравнивайте функцией постоянного времени, а не обычным равенством строк.
- Разбирайте JSON только после того, как подпись сошлась.
- Отклоняйте всё, что не прошло, и логируйте delivery ID, а не тело.
Как проверить результат
Настоящая доставка проходит проверку, а тот же payload с одним изменённым символом — нет.
Что обычно идёт не так
- Разбор и повторная сериализация до вычисления подписи.
- Middleware для парсинга тела, съедающий поток до вашего обработчика.
- Обычное
===на подписи, которое утекает по времени.
Это помогло решить задачу?
Это не помогло
Напишите нам, указав платформу и версию, выполненные шаги, ожидаемый результат и то, какого workspace или QR-кода это касается. Замаскируйте любые секреты перед тем, как что-то прикреплять.
Написать в поддержку