Перейти до вмісту

Webhooks та інтеграції

Перевірте підпис webhook

Обчислюйте підпис за сирим тілом запиту, до будь-якого парсингу JSON, і порівнюйте за сталий час. Повторна серіалізація payload змінює байти, і підпис уже ніколи не збігатиметься.

Кроки

  1. Візьміть сире тіло як байти. Більшість фреймворків за замовчуванням віддають уже розібраний об’єкт, і це запізно.
  2. Обчисліть підпис саме за цими байтами, використовуючи секрет вашого endpoint.
  3. Порівнюйте функцією сталого часу, а не звичайною рівністю рядків.
  4. Розбирайте JSON лише після того, як підпис зійшовся.
  5. Відхиляйте все, що не пройшло, і логуйте delivery ID, а не тіло.

Як перевірити результат

Справжня доставка проходить перевірку, а той самий payload зі зміненим одним символом — ні.

Що зазвичай іде не так

  • Розбір і повторна серіалізація до обчислення підпису.
  • Middleware для парсингу тіла, що з’їдає потік до вашого обробника.
  • Звичайне === на підписі, яке протікає за часом.
Це допомогло завершити задачу?

Це не допомогло

Напишіть нам, вказавши платформу й версію, виконані кроки, очікуваний результат і те, якого workspace чи QR-коду це стосується. Замаскуйте будь-які секрети перед тим, як щось прикріпляти.

Написати в підтримку