ping de teste, traz o header:
té o epoch em segundos do envio. Ele muda a cada tentativa, enquanto o corpo e oevent_idpermanecem os mesmos.v1é o HMAC-SHA256, em hexadecimal minúsculo, det + "." + corpo, calculado com o segredo do seu cadastro.
1
Leia o corpo cru
Calcule sobre os bytes exatos recebidos, antes de converter o JSON. Reserializar altera os bytes e invalida a assinatura.
2
Recalcule o HMAC
HMAC-SHA256(segredo, t + "." + corpo), em hexadecimal.3
Compare em tempo constante
Use a comparação de tempo constante da sua linguagem, em vez de
==, para evitar ataques de temporização.4
Confira a tolerância
Recuse se a diferença entre o instante atual e
t passar de 5 minutos. Essa janela impede que uma requisição capturada seja reutilizada mais tarde.Vetor de teste
Use estes valores de exemplo, que não pertencem ao seu cadastro, para conferir a sua implementação. Passe como “agora” um instante de até 5 minutos depois det, por exemplo 1791000100.
No terminal:
POST /webhooks/test: o ping chega com a assinatura real, calculada com o seu segredo. Veja Testando em dev.