Подпись webhook и callback в crypto API: как защитить интеграцию без ложного чувства безопасности
В crypto и payments-интеграциях почти каждая команда довольно быстро доходит до webhook или callback-модели.
Провайдер присылает событие о депозите, изменении статуса invoice, выплате, KYC-результате или внутреннем wallet event. На раннем этапе всё выглядит просто: подняли endpoint, приняли JSON, обработали статус, ответили 200 OK.
Но как только система начинает работать на реальных деньгах, возникает неприятный вопрос: откуда backend знает, что входящий callback действительно отправил доверенный источник, а не кто угодно из интернета?