Přejít na obsah

Webhooky a integrace

Ověřte podpis webhooku

Spočítejte podpis nad surovým tělem požadavku, před jakýmkoli parsováním JSON, a porovnejte v konstantním čase. Opětovná serializace payloadu změní bajty a podpis pak už nikdy nebude sedět.

Kroky

  1. Zachyťte surové tělo jako bajty. Většina frameworků vám ve výchozím stavu podá už rozparsovaný objekt, a to je pozdě.
  2. Spočítejte podpis přesně nad těmito bajty s tajemstvím vašeho endpointu.
  3. Porovnávejte funkcí s konstantním časem, ne rovností řetězců.
  4. JSON parsujte až poté, co podpis sedí.
  5. Odmítejte vše, co neprojde, a logujte ID doručení místo těla.

Jak ověřit výsledek

Pravé doručení projde ověřením a tentýž payload s jedním změněným znakem ne.

Co se obvykle pokazí

  • Parsovat a znovu serializovat před výpočtem podpisu.
  • Middleware parsující tělo, které spotřebuje stream dřív než váš handler.
  • Prosté === na podpisu, které prosakuje časem.
Vyřešilo to váš problém?

Tohle nepomohlo

Napište nám s platformou a verzí, kroky, které jste udělali, očekávaným výsledkem a workspace nebo QR kódem, kterého se to týká. Než cokoli přiložíte, zamaskujte každé tajemství.

Napsat podpoře