security // Webhook SecurityESTUDO
Validação HMAC de Webhook — Padrão Canônico
Valide que o body recebido foi assinado pelo emissor esperado antes de processar efeitos colaterais.
webhookhmacsecuritysignature
Trust & provenanceSTUDY
Nível de evidênciaSTUDYFontes oficiais0Outras fontes0Última verificação2026-10-05
O nível de evidência descreve minha experiência com o conteúdo. Fonte oficial descreve contrato/documentação da plataforma. Observação de produção não deve ser tratada automaticamente como limite oficial.
O provider suporta assinatura de request e você precisa detectar adulteração/autenticidade.
import crypto from 'node:crypto';
function validSignature(rawBody, received, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(rawBody)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(expected, 'hex'),
Buffer.from(received, 'hex')
);
}O receiver recalcula o MAC com o secret compartilhado e compara com a assinatura recebida.
Use o raw body exatamente como o provider exige antes de parsear/re-serializar JSON.
Rejeite assinatura ausente/malformada antes da lógica de negócio.