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

问题描述 投票:1回答:2

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

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"
}
bigcommerce
2个回答
0
投票

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

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


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有效负载中返回的哈希来验证请求吗?

答:我们今天的webhooks包含非常少的信息 - 它们只包含一个I.D.去查找其他信息。您需要获得授权才能验证I.D.针对商店的API来确定所请求的实际信息。我们还使用TLS加密来保护我们的webhook,并使开发人员能够将自己的标头添加到事件中以获得额外的安全性。

© www.soinside.com 2019 - 2024. All rights reserved.