BigCommerce webhook中的哈希字段是什么?

时间:2016-02-18 08:30:26

标签: bigcommerce

它是如何产生的?我如何验证它?

https://developer.bigcommerce.com/api/webhooks-getting-started

{ 
  "store_id": 11111,  
  "producer": "stores/abcde",
  "scope": "store/order/statusUpdated",
  "data": { 
     "type": "order",
     "id": 173331
  },
  "hash": "3f9ea420af83450d7ef9f78b08c8af25b2213637"
}

2 个答案:

答案 0 :(得分:0)

我建议使用自定义标头验证有效负载来自BigCommerce,如getting started guide中所述:

  

包含一个或多个名称 - 值对的标头对象,两个字符串值(可选)。如果您选择包含标头对象,Bigcommerce将在运行时将其POST请求的HTTP标头中的名称 - 值对包含在您的回调URI中。虽然此功能可用于任何目的,但可以使用它来设置秘密授权密钥并在运行时进行检查。这提供了一个额外的保证,即POST请求来自Bigcommerce而不是其他一方,例如恶意行为者。

答案 1 :(得分:0)

此问题由开发人员推广人员@KarenWhite回答。 https://support.bigcommerce.com/s/question/0D51B00004G6kJf/incoming-webhook-posts-hash-field-in-payload

  

它使用SHA-1进行了哈希处理,但未使用客户端机密签名:

$payload['hash'] = sha1(json_encode($payload));

此外,有关Webhook安全的立场已记录在2018年的市政厅中 https://support.bigcommerce.com/s/article/BigCommerce-Town-Hall-February-2018

  

。如何确保仅由BigCommerce启动Webhook回调,并且确保BigCommerce与服务器端点之间的数据没有改变? Webhook有效负载中返回的哈希可以用于验证请求吗?

     

A 。今天,我们的网络钩子包含的信息很少-它们仅包含ID。去查找其他信息。您需要获得授权才能验证ID。根据商店的API确定所需的实际信息。我们还通过TLS加密保护了Webhooks,并使开发人员能够将自己的标头添加到事件中,以提高安全性。