Validando as Requisições do Hub

Garanta que a comunicação é segura entre o seu serviço e o Hub.

Toda requisição enviada pelo Hub possui uma assinatura no header X-Hub-Signature. Essa assinatura é um hash HMAC-SHA256, que é feito com o corpo da mensagem (O Json necessariamente como mostrado no Body) usando a SecretKey do app como chave privada. Você pode verificar a sua em Chaves de Acesso.

Exemplo:

Sua aplicação recebe uma requisição do Hub com um conteúdo qualquer e uma assinatura no Header.

Headers
X-Hub-Signature : dc229bd348e9a9280302e6dff23cb0cfb1271124264958c342c1a95c1d0f485d

{
  "field1": "value1",
  "field2": "value2"
}

Para validar essa requisição, faça um HMAC-SHA256 do corpo da requisição (exatamente da forma que foi recebido) utilizando a SecretKey do seu app, como chave privada.

Para este exemplo a chave é e172302a-a9b8-4a34-a36d-e1d6ec10f59d.

Se o HMAC computado for o mesmo recebido no header, você pode confiar na requisição e ter a certeza que o remetente da requisição é o Hub.

876876

Você pode testar usando o ferramenta online e gratuita https://www.freeformatter.com/hmac-generator.html

🚧

Não se esqueça!

  • A mensagem é o corpo da mensagem exatamente como ela chegou na sua aplicação;
  • A chave privada é a SecretKey do seu app;
  • Use o algoritmo SHA256 para computar o hash.