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
- 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ě.
- Spočítejte podpis přesně nad těmito bajty s tajemstvím vašeho endpointu.
- Porovnávejte funkcí s konstantním časem, ne rovností řetězců.
- JSON parsujte až poté, co podpis sedí.
- 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