Portal Criar conta

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

  1. Leia o corpo cru, antes de qualquer parse do JSON.
  2. Separe t e v1 do header X-Enviaesocial-Signature.
  3. Calcule o HMAC-SHA256 de t + "." + corpo com o segredo e compare com v1 em tempo constante.
  4. Recuse t com mais de 5 minutos de diferença do seu relógio.
  5. Use o X-Enviaesocial-Delivery para descartar duplicata.
O código em PHP e em Node.js está no console, pronto para copiar.