Se você configurou um secret no webhook, cada requisição inclui o header X-Webhook-Signature com uma assinatura HMAC-SHA256 do body.
Como Verificar
A assinatura é calculada assim:
Exemplos de Verificação
Sempre use comparação em tempo constante (hmac.compare_digest no Python, timingSafeEqual no Node.js) para evitar ataques de timing.
Boas Práticas
- Sempre verifique a assinatura antes de processar o webhook
- Use comparação em tempo constante para evitar timing attacks
- Responda 200 rapidamente e processe o evento de forma assíncrona
- Implemente idempotência usando
dispatchId + status como chave de deduplicação