Продвинутый
Как безопасно реализовать Webhooks (защита от подделки)?
Если ваш сервер принимает Webhook (например, от платежной системы Stripe), хакер может отправить поддельный POST-запрос: {"status": "paid", "amount": 1000}.
Как защититься (HMAC Signatures):
1. При настройке вебхука Stripe выдает вам секретный ключ (Secret).
2. При отправке вебхука Stripe хэширует тело запроса с этим ключом и кладет результат в заголовок Stripe-Signature.
3. Ваш сервер получает запрос, берет тело, хэширует его своим секретным ключом и сравнивает с заголовком.
4. Если хэши совпали — запрос реально от Stripe. Хакер не знает секретный ключ, поэтому не сможет подделать подпись.