Webhooks · Segurança
Validar a assinatura
Todo aviso vem assinado com o segredo do ambiente. Confira antes de confiar no corpo.
Os headers
X-Enviaesocial-Signature
header
t=<unix>,v1=<hex>: o HMAC-SHA256 de "<t>.<corpo>".
X-Enviaesocial-Delivery
header
O uuid da entrega, igual ao do corpo.
X-Enviaesocial-Environment
header
PRODUCTION ou RESTRICTED.
Passo a passo
- Leia o corpo cru, antes de qualquer parse do JSON.
- Separe
tev1do headerX-Enviaesocial-Signature. - Calcule o HMAC-SHA256 de
t + "." + corpocom o segredo e compare comv1em tempo constante. - Recuse
tcom mais de 5 minutos de diferença do seu relógio. - Use o
X-Enviaesocial-Deliverypara descartar duplicata.
O código em PHP e em Node.js está no console, pronto para copiar.