Every webhook Sly sends is HMAC-signed. You MUST verify the signature before trusting the payload — otherwise an attacker could POST forged events to your endpoint.
1. Split the X-Sly-Signature header into t and v12. Reject if t is older than 5 minutes (replay protection)3. Compute HMAC-SHA256(key=webhook_secret, message=`{t}.{raw_body}`)4. Constant-time compare against v1
Use the raw body. If your framework parses JSON before handing it to you, re-serialization will change whitespace and break the signature. Register the webhook route with a raw-body parser or read from the stream directly.