(no title)
elithrar | 3 years ago
You should validate that the request is signed correctly, and reject it if not. An IP ACL can be a useful "remove some of the noise" tool, but no more than that.
For example, Discord's webhook implementation has you verify the incoming request against an app-specific (your app; not all apps) public key: https://discord.com/developers/docs/interactions/receiving-a... — this is really the right approach to this.
subomi|3 years ago
We also provide Signature verification. Static IPs are added security mechanisms for webhook consumers with strict network access rules.
devingoldfish|3 years ago
I agree with you here, but wondering what you see the benefit of per-app PKI is, versus signing all webhooks with the same cert. Is it to prevent having to do a key rotation that would impact every webhook consumer?
subomi|3 years ago
We wrote a detailed guide on generating and rolling public key/secrets for your endpoints here [1]
[1] https://getconvoy.io/blog/generating-stripe-like-webhook-sig...